private_members.phpt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. --TEST--
  2. ZE2 A private member is
  3. --SKIPIF--
  4. <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
  5. --FILE--
  6. <?php
  7. class base
  8. {
  9. private $member;
  10. function __construct()
  11. {
  12. echo __METHOD__ . "(begin)\n";
  13. $this->member = 'base::member';
  14. $this->test();
  15. echo __METHOD__ . "(end)\n";
  16. }
  17. function test()
  18. {
  19. echo __METHOD__ . "\n";
  20. print_r($this);
  21. }
  22. }
  23. class derived extends base
  24. {
  25. public $member = 'derived::member (default)';
  26. function __construct()
  27. {
  28. echo __METHOD__ . "(begin)\n";
  29. parent::__construct();
  30. parent::test();
  31. $this->test();
  32. $this->member = 'derived::member';
  33. echo __METHOD__ . "(end)\n";
  34. }
  35. function test()
  36. {
  37. parent::test();
  38. echo __METHOD__ . "\n";
  39. print_r($this);
  40. }
  41. }
  42. $t = new derived;
  43. $t->test();
  44. unset($t);
  45. echo "Done\n";
  46. ?>
  47. --EXPECTF--
  48. derived::__construct(begin)
  49. base::__construct(begin)
  50. base::test
  51. derived Object
  52. (
  53. [member] => derived::member (default)
  54. [member:base:private] => base::member
  55. )
  56. derived::test
  57. derived Object
  58. (
  59. [member] => derived::member (default)
  60. [member:base:private] => base::member
  61. )
  62. base::__construct(end)
  63. base::test
  64. derived Object
  65. (
  66. [member] => derived::member (default)
  67. [member:base:private] => base::member
  68. )
  69. base::test
  70. derived Object
  71. (
  72. [member] => derived::member (default)
  73. [member:base:private] => base::member
  74. )
  75. derived::test
  76. derived Object
  77. (
  78. [member] => derived::member (default)
  79. [member:base:private] => base::member
  80. )
  81. derived::__construct(end)
  82. base::test
  83. derived Object
  84. (
  85. [member] => derived::member
  86. [member:base:private] => base::member
  87. )
  88. derived::test
  89. derived Object
  90. (
  91. [member] => derived::member
  92. [member:base:private] => base::member
  93. )
  94. Done