php类方法中参数问题,参数怎么是一个类名 加上变量,怎么理解?

2025-05-19 10:18:25
推荐回答(1个)
回答1:

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的对象是不对的。