3

查看 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)
    {
    }
}
4

3 回答 3

4

它被称为类型提示

baz()方法期望第一个参数 ,$baz是 类型的对象Baz。一个对象的类型要么来自它所构建的类,要么来自它实现的接口。

于 2013-05-05T13:28:46.000 回答
2

在 c 类中,函数baz()需要一个参数,该参数是它所在的类的对象Baz$baz只是对象名称。它在函数内部使用baz()

它被称为类型提示

PHP 5 引入了类型提示。函数现在能够强制参数为对象(通过在函数原型中指定类的名称)、接口、数组(自 PHP 5.1 起)或可调用(自 PHP 5.4 起)。但是,如果将 NULL 用作默认参数值,则将允许它作为任何以后调用的参数。

如果将类或接口指定为类型提示,则也允许其所有子级或实现。

类型提示不能用于标量类型,例如 int 或 string。特征也是不允许的。

于 2013-05-05T13:29:05.533 回答
0

根据文档,它被称为类型提示

Baz 是类的名称

因此 baz 方法期望第一个参数 $baz 是一个对象

于 2013-05-05T13:27:18.477 回答