我想知道在当前PHP 5.4实现中为什么会出现这种行为,是否有任何合理的理由:
trait T {
public function test(PDO $pdo) {}
}
class C {
use T;
public function test(DOMDocument $dom) {}
}
我曾认为,一个类使用trait应该保证这个类有特定的接口可用。但是在这里,如果我们不小心覆盖了trait方法以达到其他目的,就算是与经典继承一样,我们也不会收到Strict Standards通知。
这是否是特意被允许的?为什么?