diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /tests/classes/static_properties_004.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'tests/classes/static_properties_004.phpt')
-rw-r--r-- | tests/classes/static_properties_004.phpt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/classes/static_properties_004.phpt b/tests/classes/static_properties_004.phpt new file mode 100644 index 0000000..ce1d19d --- /dev/null +++ b/tests/classes/static_properties_004.phpt @@ -0,0 +1,37 @@ +--TEST-- +Inherited static properties can be separated from their reference set. +--FILE-- +<?php +class C { public static $p = 'original'; } +class D extends C { } +class E extends D { } + +echo "\nInherited static properties refer to the same value accross classes:\n"; +var_dump(C::$p, D::$p, E::$p); + +echo "\nChanging one changes all the others:\n"; +D::$p = 'changed.all'; +var_dump(C::$p, D::$p, E::$p); + +echo "\nBut because this is implemented using PHP references, the reference set can easily be split:\n"; +$ref = 'changed.one'; +D::$p =& $ref; +var_dump(C::$p, D::$p, E::$p); +?> +==Done== +--EXPECTF-- +Inherited static properties refer to the same value accross classes: +%unicode|string%(8) "original" +%unicode|string%(8) "original" +%unicode|string%(8) "original" + +Changing one changes all the others: +%unicode|string%(11) "changed.all" +%unicode|string%(11) "changed.all" +%unicode|string%(11) "changed.all" + +But because this is implemented using PHP references, the reference set can easily be split: +%unicode|string%(11) "changed.all" +%unicode|string%(11) "changed.one" +%unicode|string%(11) "changed.all" +==Done==
\ No newline at end of file |