Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Get the type of a variable
<?php gettype(mixed $value): string
<?php         throw new \InvalidArgumentException(

            sprintf(

                'PlatformRequirementFilter: Unknown $boolOrList parameter %s. Please report at https://github.com/composer/composer/issues/new.',

                gettype($boolOrList)

            )

        );

    }
<?php     private function createLink($source, $sourceVersion, $description, $target, $prettyConstraint)

    {

        if (!\is_string($prettyConstraint)) {

            throw new \UnexpectedValueException('Link constraint in '.$source.' '.$description.' > '.$target.' should be a string, got '.\gettype($prettyConstraint) . ' (' . var_export($prettyConstraint, true) . ')');

        }

        if ('self.version' === $prettyConstraint) {

            $parsedConstraint = $this->versionParser->parseConstraints($sourceVersion);
<?php         } else {

            throw new \InvalidArgumentException(sprintf(

                "JsonLoader: Unknown \$json parameter %s. Please report at https://github.com/composer/composer/issues/new.",

                gettype($json)

            ));

        }
<?php                     continue;

                }

                if (!is_string($platform)) {

                    $this->errors[] = 'config.platform.' . $key . ' : invalid value ('.gettype($platform).' '.var_export($platform, true).'): expected string or false';

                    continue;

                }

                try {
<?php         if ($this->validateArray('authors') && !empty($this->config['authors'])) {

            foreach ($this->config['authors'] as $key => $author) {

                if (!is_array($author)) {

                    $this->errors[] = 'authors.'.$key.' : should be an array, '.gettype($author).' given';

                    unset($this->config['authors'][$key]);

                    continue;

                }
<?php         if ($this->validateArray('funding') && !empty($this->config['funding'])) {

            foreach ($this->config['funding'] as $key => $fundingOption) {

                if (!is_array($fundingOption)) {

                    $this->errors[] = 'funding.'.$key.' : should be an array, '.gettype($fundingOption).' given';

                    unset($this->config['funding'][$key]);

                    continue;

                }
<?php                     $this->errors[] = $srcType . '.reference : must be present';

                }

                if (!is_string($this->config[$srcType]['type'])) {

                    $this->errors[] = $srcType . '.type : should be a string, '.gettype($this->config[$srcType]['type']).' given';

                }

                if (!is_string($this->config[$srcType]['url'])) {

                    $this->errors[] = $srcType . '.url : should be a string, '.gettype($this->config[$srcType]['url']).' given';
<?php                     $this->errors[] = $srcType . '.type : should be a string, '.gettype($this->config[$srcType]['type']).' given';

                }

                if (!is_string($this->config[$srcType]['url'])) {

                    $this->errors[] = $srcType . '.url : should be a string, '.gettype($this->config[$srcType]['url']).' given';

                }

                if (isset($this->config[$srcType]['reference']) && !is_string($this->config[$srcType]['reference']) && !is_int($this->config[$srcType]['reference'])) {

                    $this->errors[] = $srcType . '.reference : should be a string or int, '.gettype($this->config[$srcType]['reference']).' given';
<?php                     $this->errors[] = $srcType . '.url : should be a string, '.gettype($this->config[$srcType]['url']).' given';

                }

                if (isset($this->config[$srcType]['reference']) && !is_string($this->config[$srcType]['reference']) && !is_int($this->config[$srcType]['reference'])) {

                    $this->errors[] = $srcType . '.reference : should be a string or int, '.gettype($this->config[$srcType]['reference']).' given';

                }

                if (isset($this->config[$srcType]['reference']) && Preg::isMatch('{^\s*-}', (string) $this->config[$srcType]['reference'])) {

                    $this->errors[] = $srcType . '.reference : must not start with a "-", "'.$this->config[$srcType]['reference'].'" given';
<?php             } else {

                foreach ($this->config['extra']['branch-alias'] as $sourceBranch => $targetBranch) {

                    if (!is_string($targetBranch)) {

                        $this->warnings[] = 'extra.branch-alias.'.$sourceBranch.' : the target branch ('.json_encode($targetBranch).') must be a string, "'.gettype($targetBranch).'" received.';

                        unset($this->config['extra']['branch-alias'][$sourceBranch]);



                        continue;
<?php     private function validateString($property, $mandatory = false)

    {

        if (isset($this->config[$property]) && !is_string($this->config[$property])) {

            $this->errors[] = $property.' : should be a string, '.gettype($this->config[$property]).' given';

            unset($this->config[$property]);



            return false;
<?php     private function validateArray($property, $mandatory = false)

    {

        if (isset($this->config[$property]) && !is_array($this->config[$property])) {

            $this->errors[] = $property.' : should be an array, '.gettype($this->config[$property]).' given';

            unset($this->config[$property]);



            return false;
<?php         $pass = true;

        foreach ($this->config[$property] as $key => $value) {

            if (!is_string($value) && !is_numeric($value)) {

                $this->errors[] = $property.'.'.$key.' : must be a string or int, '.gettype($value).' given';

                unset($this->config[$property][$key]);

                $pass = false;
<?php         $this->hhvmDetector = $hhvmDetector ?: new HhvmDetector();

        foreach ($overrides as $name => $version) {

            if (!is_string($version) && false !== $version) { // @phpstan-ignore-line

                throw new \UnexpectedValueException('config.platform.'.$name.' should be a string or false, but got '.gettype($version).' '.var_export($version, true));

            }

            if ($name === 'php' && $version === false) {

                throw new \UnexpectedValueException('config.platform.'.$name.' cannot be set to false as you cannot disable php entirely.');
<?php                 throw new \UnexpectedValueException('"repositories" should be an array of repository definitions, only a single repository was given');

            }

            if (!is_array($repo)) {

                throw new \UnexpectedValueException('Repository "'.$index.'" ('.json_encode($repo).') should be an array, '.gettype($repo).' given');

            }

            if (!isset($repo['type'])) {

                throw new \UnexpectedValueException('Repository "'.$index.'" ('.json_encode($repo).') must have a type defined');