我在 PHP 版本 5.5.9-1ubuntu4.4 上运行
当我使用代码运行文件时:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
class A
{
public function f(array $array)
{
echo 'a';
}
}
class B extends A
{
public function f(A $a, array $b)
{
echo 'b';
}
}
$a = new A();
$a->f([1, 2, 3]);
$b = new B();
$b->f($a, []);
我预计会收到“严格标准”错误,因为我使用不同的签名重载了方法。但我没有收到任何错误或任何警告消息。只是正常的输出。为什么?