Мой код использует is_subclass_of()
,
От PHP документация, есть третий необязательный параметр, $allow_string
:
bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] )
Но код, который использует избыточный параметр в качестве третьего аргумента, чтобы сделать его более явным, выдает ошибку. Зачем?
class Foo {
private $fooVar;
}
class Bar extends Foo {
private $barVar;
}
$fooString = 'Foo';
$barString = 'Bar';
// THE FOLLOWING CODE MAKES $boolVar TRUE,
// but why can't I add the third parameter when the docs say it's allowed?
$boolVar = is_subclass_of($barString, $fooString, true);
// $boolVar = is_subclass_of($barString, $fooString);
if ($boolVar) {
die("Yes it is. Great!");
} else {
die("No it isn't. This is not what I want.");
}
Это сообщение об ошибке, которое я получаю:
Предупреждение: is_subclass_of () ожидает ровно 2 параметра, 3 указаны в строке 18
Ваш код отлично работает на phpfiddle.org.
Смотрите запись в журнале изменений на странице, на которую вы ссылаетесь:
5.3.9 Добавлен параметр allow_string
Вы используете более раннюю версию PHP? Вы можете проверить это с
echo phpversion();
Других решений пока нет …