此代码失败。但我不明白为什么。如果我将功能 lol 更改为其他功能,它就可以工作。如果我更改 Abstract 的类,它也可以工作。看到这个执行:http ://codepad.viper-7.com/Z9V67x
<?php
abstract class Lol{
abstract public function lol($external = false);
}
class Crazy extends Lol{
public function lol($external = false){
echo 'lol';
}
}
$new = new Crazy;
$new->lol('fdgdfg');
返回的错误是:
Fatal error: Cannot call abstract method Lol::lol() in /code/Z9V67x on line 17
PHP Fatal error: Cannot call abstract method Lol::lol() in /code/Z9V67x on line 17
对同名函数和类进行了一些研究,在 PHP4 中,同名意味着构造函数。根据此https://stackoverflow.com/a/6872939/582917答案,命名空间类不再处理与构造函数同名的函数。但是非命名空间的类可以。仍然为什么不能在子实例中替换构造函数?