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

时间:2015-02-16 23:44:01

标签: php parameters subclass

我的代码使用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.");
}

这是我收到的错误消息:

  

警告:is_subclass_of()需要2个参数,第18行给出3

1 个答案:

答案 0 :(得分:0)

您的代码在phpfiddle.org上运行正常。

请参阅您引用的页面上的更改日志条目:

  

5.3.9添加了allow_string参数

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

进行检查
echo phpversion();