I'm wondering if there is any good reason why this behaviour is possible in the current PHP 5.4 implementation:
trait T {
public function test(PDO $pdo) {}
}
class C {
use T;
public function test(DOMDocument $dom) {}
}
I thought that the fact that a class uses a trait, guaranteed that this class had a specific interface available. But here, if we inadvertently override the trait method for another purpose, we don't even receive a Strict Standards notice, as with classic inheritance.
Is this specifically allowed on purpose? What for?