查看PHP关于接口的文档,具体在这里:PHP: Object Interfaces - Manual。以下代码作为工作示例给出。有人可以解释一下,作为函数签名的一部分被声明为“Baz”的裸字是什么?
<?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
// This will work
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
答案 0 :(得分:4)
它被称为type hinting。
baz()
方法期望第一个参数$baz
是Baz
类型的对象。对象的类型来自它构建的类,或来自它实现的接口。
答案 1 :(得分:2)
在类c中,函数baz()
需要一个参数,该参数是类Baz
的对象。 $baz
只是对象名称。它在baz()
的功能中使用。
它被称为Type Hinting
PHP 5引入了类型提示。功能现在可以强制执行 参数是对象(通过指定类中的类的名称) 函数原型),接口,数组(自PHP 5.1起)或可调用 (自PHP 5.4起)。但是,如果使用NULL作为默认参数 值,它将被允许作为任何后续调用的参数。
如果将类或接口指定为类型提示,则指定其所有子项 或允许实施。
类型提示不能与标量类型(如int或string)一起使用。 也不允许特征。
答案 2 :(得分:0)