fork download
  1. <?php
  2. $someBuffer = new Buffer();
  3. $someBuffer('a string');
  4. $someBuffer(array('an array'));
  5.  
  6. $otherBuffer = new Buffer();
  7. $otherBuffer('another string');
  8.  
  9. print json_encode($otherBuffer->release())."\n";
  10.  
  11. echo "\nПочему \$otherBuffer скопировало \$someBuffer ?!! Это же разные инстансы.";
  12.  
  13. class Buffer
  14. {
  15. protected static $stock = array();
  16.  
  17. public function clear() {
  18. self::$stock = array();
  19. }
  20.  
  21. public function __invoke($resource = array(), $key = false) {
  22. if ($key) {
  23. self::$stock[$key] = $resource;
  24. } else {
  25. self::$stock[] = $resource;
  26. }
  27. }
  28.  
  29. public function release() {
  30. return self::$stock;
  31. }
  32. }
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
["a string",["an array"],"another string"]

Почему $otherBuffer скопировало $someBuffer ?!! Это же разные инстансы.