PHP 5 可以使用类型约束。函数的参数可以指定只能为对象(在函数原型里面指定类的名字),PHP 5.1 之后也可以指定只能为数组。
注:PHP7之后可以指定int,string等。
代表方法baz()接收的参数是一个对象,并且指定必须是Test类实例化的对象。
比如在后面加如下代码就能正常输出:string(5) "hello"
12345
$a=new Test(111);$a->baz($a);
但是如果换成如下代码:
class B{}
$b=new B();
$a=new Test(111);
$a->baz($b);
就会报错:Catchable fatal error: Argument 1 passed to Test::baz() must be an instance of Test, instance of B given
简单意思就是:传递参数必须是实例化Test,你传B的对象是不对的。