Annotation of embedaddon/php/Zend/tests/traits/property001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Potentially conflicting properties should result in a strict notice. Property use is discorage for traits that are supposed to enable maintainable code reuse. Accessor methods are the language supported idiom for this.
                      3: --FILE--
                      4: <?php
                      5: error_reporting(E_ALL);
                      6: 
                      7: trait THello1 {
                      8:   private $foo;
                      9: }
                     10: 
                     11: trait THello2 {
                     12:   private $foo;
                     13: }
                     14: 
                     15: echo "PRE-CLASS-GUARD-TraitsTest\n";
                     16: error_reporting(E_ALL & ~E_STRICT); // ensuring that it is only for E_STRICT
                     17: 
                     18: class TraitsTest {
                     19:        use THello1;
                     20:        use THello2;
                     21: }
                     22: 
                     23: error_reporting(E_ALL | E_STRICT);
                     24: 
                     25: echo "PRE-CLASS-GUARD-TraitsTest2\n";
                     26: 
                     27: class TraitsTest2 {
                     28:        use THello1;
                     29:        use THello2;
                     30: }
                     31: 
                     32: var_dump(property_exists('TraitsTest', 'foo'));
                     33: var_dump(property_exists('TraitsTest2', 'foo'));
                     34: ?>
                     35: --EXPECTF--    
                     36: PRE-CLASS-GUARD-TraitsTest
                     37: PRE-CLASS-GUARD-TraitsTest2
                     38: 
                     39: Strict Standards: THello1 and THello2 define the same property ($foo) in the composition of TraitsTest2. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed in %s on line %d
                     40: bool(true)
                     41: bool(true)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>