code_junkie

PHP - member encapsulation returns strange reference

Nov 12th, 2011
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. class ContentHolder
  2. {
  3. private $content;
  4. public function __construct()
  5. {
  6. $this->content = "";
  7. }
  8.  
  9. public function getContent()
  10. {
  11. return $this->content;
  12. }
  13. }
  14. $c = new ContentHolder();
  15. $foo = array();
  16. $foo['c'] = $c->getContent();
  17.  
  18. public function &getContent()
  19. {
  20. return $this->content;
  21. }
  22.  
  23. $foo['c'] = &$c->getContent();
  24.  
  25. public function __construct() {
  26. $this->content = "test";
  27. }
  28.  
  29. $c = new ContentHolder();
  30. $foo = array();
  31. $foo['c'] = $c->getContent();
  32.  
  33. print $foo['c']; // prints "test"
  34. print $c->getContent(); // prints "test"
  35.  
  36. var_dump($foo);
  37.  
  38. array(1) {
  39. ["c"]=>
  40. string(0) ""
  41. }
  42.  
  43. echo "foo[c] = '" . $foo['c'] . "'n";
  44.  
  45. foo[c] = ''
Add Comment
Please, Sign In to add comment