php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /php-7.1.11/Zend/tests/traits/ |
files >> //php-7.1.11/Zend/tests/traits/property008.phpt |
--TEST-- Handling of private fields with traits needs to have same semantics as with normal inheritance. --FILE-- <?php error_reporting(E_ALL | E_STRICT); class BaseWithPropA { private $hello = 0; } // This is how privates are handled in normal inheritance class SubclassClassicInheritance extends BaseWithPropA { private $hello = 0; } // And here, we need to make sure, that the traits behave the same trait AHelloProperty { private $hello = 0; } class BaseWithTPropB { use AHelloProperty; } class SubclassA extends BaseWithPropA { use AHelloProperty; } class SubclassB extends BaseWithTPropB { use AHelloProperty; } $classic = new SubclassClassicInheritance; var_dump($classic); $a = new SubclassA; var_dump($a); $b = new SubclassB; var_dump($b); ?> --EXPECTF-- object(SubclassClassicInheritance)#1 (2) { ["hello":"SubclassClassicInheritance":private]=> int(0) ["hello":"BaseWithPropA":private]=> int(0) } object(SubclassA)#2 (2) { ["hello":"SubclassA":private]=> int(0) ["hello":"BaseWithPropA":private]=> int(0) } object(SubclassB)#3 (2) { ["hello":"SubclassB":private]=> int(0) ["hello":"BaseWithTPropB":private]=> int(0) }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`