code: private static function pickupMatch($value, $type)
      {
          $ltype = strtolower($type);
          switch ($ltype) {
              case 'int':
              case 'integer':
                  return is_int($value);
              case 'float':
              case 'numeric':
                  return is_numeric($value);
              case 'string':
                  return is_string($value);
              case 'null':
                  return is_null($value);
              case 'bool':
              case 'boolean':
                  return is_bool($value);
              case 'array':
                  return is_array($value);
              case 'resource':
                  return is_resource($value);
              case 'object':
                  return is_object($value);
              default:
                  return is_object($value) && ($value instanceof $type);
          }
      }
docs: 指定された値が第 2 引数で指定した型にマッチするかどうかを調べます.
  
  @param  string  $value 検査対象の値
  @param  string  $type  型
  @return bool           引数 $value の型が $type に合致する場合に true