Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Поясните логику работы интерпритатора
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Поясните логику работы интерпритатора

Страниц (1): [1]
 

1. Zuldek - 09 Апреля, 2013 - 13:28:26 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. class D {}
  2.  
  3. $i = new D();
  4.  
  5. $a=$i;
  6. $r=&$i;
  7.  
  8. $i->var='test';
  9.  
  10. $i=null;  #!!!

CODE (htmlphp):
скопировать код в буфер обмена
  1. NULL NULL object(D)#44 (1) { ["var"]=> string(4) "test" }

Я правильно понимаю, что это иллюстрация принципа жесткости ссылок и фактически не произошло удаления экземпляра класса из-за того, что была жива ссылка на него и в объекте вылезло объявленное динамически свойство?
2. biperch - 09 Апреля, 2013 - 13:35:43 - перейти к сообщению
в пхп объект удаляется только когда на него нет ссылок, при присвоении объекта переменной происходит присвоение по ссылке по умолчанию
3. Zuldek - 09 Апреля, 2013 - 13:39:06 - перейти к сообщению
Все верно: Просто ссылки на один и тот же участок памяти, спасибо.

 

Powered by ExBB FM 1.0 RC1