overloaded_prop_assign_op_refs.phpt 673 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. Handling of assign-ops and incdecs on overloaded properties using &__get()
  3. --FILE--
  4. <?php
  5. class Test {
  6. protected $a = 0;
  7. protected $b = 0;
  8. protected $c = 0;
  9. public function &__get($name) {
  10. echo "get($name)\n";
  11. return $this->$name;
  12. }
  13. public function __set($name, $value) {
  14. echo "set($name, $value)\n";
  15. }
  16. }
  17. $test = new Test;
  18. var_dump($test->a += 1);
  19. var_dump($test->b++);
  20. var_dump(++$test->c);
  21. var_dump($test);
  22. ?>
  23. --EXPECT--
  24. get(a)
  25. set(a, 1)
  26. int(1)
  27. get(b)
  28. set(b, 1)
  29. int(0)
  30. get(c)
  31. set(c, 1)
  32. int(1)
  33. object(Test)#1 (3) {
  34. ["a":protected]=>
  35. int(0)
  36. ["b":protected]=>
  37. int(0)
  38. ["c":protected]=>
  39. int(0)
  40. }