警告:is_subclass_of() 需要正好 2 个参数,给定 3 个

Warning: is_subclass_of() expects exactly 2 parameters, 3 given

我的代码使用了 is_subclass_of().

PHP documentation开始,还有第三个可选参数,$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.");
}

这是我收到的错误消息:

Warning: is_subclass_of() expects exactly 2 parameters, 3 given on line 18

您的代码在 phpfiddle.org 上运行良好。

查看您引用的页面上的更改日志条目:

5.3.9 Added allow_string parameter

您 运行 是 PHP 的早期版本吗?您可以使用

查看
echo phpversion();