Hello folks,
I've just grabbed 5.4a2 to play with traits. I've found some behaviour which I'm not sure is a bug, an inconsistency, or a design decision.
Consider a trait and a class that implements it but also overrides both a trait method and a trait attribute:
trait foo { public $zoo = 'foo::zoo'; public function bar() { echo "in foo::bar\n"; } } class baz { use foo; public $zoo = 'baz::zoo'; public function bar() { echo "in baz::bar\n"; } } $obj = new baz(); $obj->bar(); echo $obj->zoo, "\n"; We get: in baz::bar foo::zoo It seems this is not correct and that it should be: in baz::bar baz::zooThe traits RFC pretty clearly states that if a class method conflicts with a trait method then the trait method will be ignored, which is what's happening, but it says nothing about what happens to attributes in that same condition. Is this a bug?
Thanks, -- Alex Howansky
smime.p7s
Description: S/MIME Cryptographic Signature