В моем PHP-файле я создал функцию с параметром, который может быть любого типа. Из-за этого я объявил этот параметр как mixed
, Кажется mixed
тип связан с расположением папки, куда направляется класс; lib\util
, Ошибка говорит instance of lib\util\mixed
,
protected function curlSetOpt(int $param1, mixed $param2): bool
{
return anotherFunction($this->variable, $param1, $param2);
}
В тот момент, когда я вызываю этот метод, используя строку, возникает ошибка TypeError.
Аргумент 2, передаваемый в lib \ util \ Class :: function (), должен быть экземпляром lib \ util \ mixed, задана строка
Переименование типа из mixed
в string
работает, но и другие типы приветствуются.
mixed
недопустимый тип для подсказок в PHP. Действительные типы перечислены здесь: http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
Слегка загадочное сообщение об ошибке объясняется тем, что PHP предполагает, что вы пытаетесь ограничить тип классом в вашем пространстве имен: lib\util\mixed
,
Если вы не хотите ограничивать тип, просто не добавляйте подсказку типа.
Других решений пока нет …