summaryrefslogtreecommitdiff
path: root/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt
diff options
context:
space:
mode:
authorAnt Phillips <ant@php.net>2008-11-18 15:37:57 +0000
committerAnt Phillips <ant@php.net>2008-11-18 15:37:57 +0000
commitddb2c0584149313d80fbec89f01264338b0073b7 (patch)
treef5251b8af450d59bf19ce6de2d7a7cdd5dd78a10 /ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt
parentf305ddbe537005997dccc00e9057de42a76cf631 (diff)
downloadphp-git-ddb2c0584149313d80fbec89f01264338b0073b7.tar.gz
Reflection tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit).
Diffstat (limited to 'ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt')
-rw-r--r--ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt77
1 files changed, 77 insertions, 0 deletions
diff --git a/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt b/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt
new file mode 100644
index 0000000000..70a3bab9c2
--- /dev/null
+++ b/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001.phpt
@@ -0,0 +1,77 @@
+--TEST--
+ReflectionClass::setStaticPropertyValue()
+--CREDITS--
+Robin Fernandes <robinf@php.net>
+Steve Seear <stevseea@php.net>
+--FILE--
+<?php
+class A {
+ static private $privateOverridden = "original private";
+ static protected $protectedOverridden = "original protected";
+ static public $publicOverridden = "original public";
+}
+
+class B extends A {
+ static private $privateOverridden = "changed private";
+ static protected $protectedOverridden = "changed protected";
+ static public $publicOverridden = "changed public";
+}
+
+echo "Set static values in A:\n";
+$rcA = new ReflectionClass('A');
+$rcA->setStaticPropertyValue("\0A\0privateOverridden", "new value 1");
+$rcA->setStaticPropertyValue("\0*\0protectedOverridden", "new value 2");
+$rcA->setStaticPropertyValue("publicOverridden", "new value 3");
+print_r($rcA->getStaticProperties());
+
+echo "\nSet static values in B:\n";
+$rcB = new ReflectionClass('B');
+$rcB->setStaticPropertyValue("\0A\0privateOverridden", "new value 4");
+$rcB->setStaticPropertyValue("\0B\0privateOverridden", "new value 5");
+$rcB->setStaticPropertyValue("\0*\0protectedOverridden", "new value 6");
+$rcB->setStaticPropertyValue("publicOverridden", "new value 7");
+print_r($rcA->getStaticProperties());
+print_r($rcB->getStaticProperties());
+
+echo "\nSet non-existent values from A with no default value:\n";
+try {
+ var_dump($rcA->setStaticPropertyValue("protectedOverridden", "new value 8"));
+ echo "you should not see this";
+} catch (Exception $e) {
+ echo $e->getMessage() . "\n";
+}
+
+try {
+ var_dump($rcA->setStaticPropertyValue("privateOverridden", "new value 9"));
+ echo "you should not see this";
+} catch (Exception $e) {
+ echo $e->getMessage() . "\n";
+}
+
+?>
+--EXPECTF--
+Set static values in A:
+Array
+(
+ [privateOverridden] => new value 1
+ [protectedOverridden] => new value 2
+ [publicOverridden] => new value 3
+)
+
+Set static values in B:
+Array
+(
+ [privateOverridden] => new value 4
+ [protectedOverridden] => new value 2
+ [publicOverridden] => new value 3
+)
+Array
+(
+ [privateOverridden] => new value 4
+ [protectedOverridden] => new value 6
+ [publicOverridden] => new value 7
+)
+
+Set non-existent values from A with no default value:
+Class A does not have a property named protectedOverridden
+Class A does not have a property named privateOverridden \ No newline at end of file