PageRenderTime 35ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/zend/bad/ext/reflection/tests/ReflectionClass_setStaticPropertyValue_001_2_4.php

http://github.com/facebook/hiphop-php
PHP | 45 lines | 39 code | 6 blank | 0 comment | 0 complexity | 728cb415c11dc15349c5941530de7b61 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?php
  2. class A {
  3. static private $privateOverridden = "original private";
  4. static protected $protectedOverridden = "original protected";
  5. static public $publicOverridden = "original public";
  6. }
  7. class B extends A {
  8. static private $privateOverridden = "changed private";
  9. static protected $protectedOverridden = "changed protected";
  10. static public $publicOverridden = "changed public";
  11. }
  12. echo "Set static values in A:\n";
  13. $rcA = new ReflectionClass('A');
  14. $rcA->setStaticPropertyValue("\0A\0privateOverridden", "new value 1");
  15. $rcA->setStaticPropertyValue("\0*\0protectedOverridden", "new value 2");
  16. $rcA->setStaticPropertyValue("publicOverridden", "new value 3");
  17. print_r($rcA->getStaticProperties());
  18. echo "\nSet static values in B:\n";
  19. $rcB = new ReflectionClass('B');
  20. $rcB->setStaticPropertyValue("\0A\0privateOverridden", "new value 4");
  21. $rcB->setStaticPropertyValue("\0B\0privateOverridden", "new value 5");
  22. $rcB->setStaticPropertyValue("\0*\0protectedOverridden", "new value 6");
  23. $rcB->setStaticPropertyValue("publicOverridden", "new value 7");
  24. print_r($rcA->getStaticProperties());
  25. print_r($rcB->getStaticProperties());
  26. echo "\nSet non-existent values from A with no default value:\n";
  27. try {
  28. var_dump($rcA->setStaticPropertyValue("protectedOverridden", "new value 8"));
  29. echo "you should not see this";
  30. } catch (Exception $e) {
  31. echo $e->getMessage() . "\n";
  32. }
  33. try {
  34. var_dump($rcA->setStaticPropertyValue("privateOverridden", "new value 9"));
  35. echo "you should not see this";
  36. } catch (Exception $e) {
  37. echo $e->getMessage() . "\n";
  38. }
  39. ?>