PHP中的参数签名是什么?

时间:2013-04-25 16:18:40

标签: php parameters signature

PHP官方文档在解释类和对象部分下的扩展时,它说:

"When overriding methods, the parameter signature should remain the same or PHP
will generate an E_STRICT level error. This does not apply to the constructor
which allows overriding with different parameters."

所以我想知道,参数签名是什么?

文档中的示例如下:

<?php
class ExtendClass extends SimpleClass
{
    // Redefine the parent method
    function displayVar()
    {
        echo "Extending class\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?> 

官方在线link

1 个答案:

答案 0 :(得分:4)

参数签名只是方法定义(签名)中参数的定义。引用文本的含义是,在覆盖父类的方法时,使用与参数相同的数字(和不适用于PHP的类型)。
函数/方法的签名也称为 head 。它包含名称和参数。该函数的实际代码称为 body

function foo($arg1, $arg2) // signature
{
    // body
}

因此,例如,如果父类中有方法foo($arg1, $arg2),则无法通过定义方法foo($arg)在扩展类中覆盖它。