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

My code makes use of is_subclass_of().

From the PHP documentation, there is a third optional parameter, $allow_string:

bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] )

But the code, which uses a redundant parameter as the third argument in order to make it more explicit, throws an error. Why?

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.");
}

This is the error message I get:

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

You code works fine on phpfiddle.org.

See the change log entry on the page you reference:

5.3.9 Added allow_string parameter

Are you running an earlier version of PHP? You can check it with

echo phpversion();