1

PHP は最近、関数に3 番目の引数を追加しましたis_a。これはブール値であり、ドキュメントには次のように書かれています。

このパラメーターが FALSE に設定されている場合、オブジェクトとしての文字列クラス名は許可されません。これにより、クラスが存在しない場合にオートローダーを呼び出すこともできなくなります。

理解できません。不必要にオートローダーを呼び出すことを防ぐことができると思いますが、文字列をクラス名として渡すことはできません。

> class A {}
> $x = new A();
> echo is_a($x, 'A', false);
1

…実際、文字列以外を渡すことはできません。

> echo is_a($x, A, false);
PHP Notice:  Use of undefined constant B - assumed 'A' in php shell code on line 1
PHP Stack trace:
PHP   1. {main}() php shell code:0

Notice: Use of undefined constant B - assumed 'A' in php shell code on line 1

Call Stack:
   18.7644     625048   1. {main}() php shell code:0

1

3 番目の引数を変更しても、このエラー メッセージは変わりません。オブジェクトとしての文字列クラス名は実際にはどういう意味ですか?

4

1 に答える 1