Вопрос-Ответ по ООП PHP

Печать RSS
2703


ツ ツ ツ
0
Вот на счет "Хотя, однако, & все еще работает - наверное, для совместимости." тоже не согласен, оставили её не зря и не для совместимости
<?php
$a = new a();
$b  = $a;
$b = NULL;
var_dump($a); // object(a)[1]
А теперь с &
<?php
$a = new a();
$b  = &$a;
$b = NULL;
var_dump($a); // null
И как известно объект удалится тогда когда на него не останется не одной ссылки

2000 лет д.н.э.
0
121. .::lugaro::., я ошибся, в php6 не будет &
будет выдавать E_STRICT

ツ ツ ツ
0
Ну наверно что-то новое придумали иначе не вижу смысла убирать, так то полезная штука однако ))
Изменил: Lugaro (29.07.2011 / 16:09)
П

Пацак
0
121. .::lugaro::., как-то нелогично. Например, если во втором случае написать еще, скажем, $c=$a, а только потом удалять $b, то объект останется (в $c). Я могу придумать только то, что интерпретатор, когда видит &, заменяет все переменные $b на $а.

Добавлено через 02:51 сек.
Т.е. вообще не создает переменную $b. А удалять &, конечно, не надо - есть ведь еще и массивы, и другие типы данных.
K

Транклюкаторщик
0
123. .::lugaro::., объясните мне дураку, как эти ссылки можно использовать?
ну я имею ввиду где и для чего они нужны вообще?
Изменил: KOZZ (29.07.2011 / 16:49)

Оранжевые штаны
0
просто переменные копировать дабы не занимать память

2000 лет д.н.э.
0
Дмитрий (29 Июля 2011 / 16:50)
просто переменные копировать дабы не занимать память
копировать это как раз занимать память
ссылаться куда экономнее
$b = 11111111111111;
$a = $b;
echo $a; echo ($a=>$b); echo (''=>11111111111);
П

Пацак
0
Например, в функциях возможность "возвращать сразу несколько значений" (почему-то вспомнились процедуры в паскале smile ).

Добавлено через 01:28 сек.
Дмитрий, наверное, имел в виду копирование переменных-ссылок.
K

Транклюкаторщик
0
128. Im-ieee, в функциях? и как же?
да и например массив возвращать не удобнее?

ツ ツ ツ
0
ну намного удобней писать так
$a = 'abcd';
повернуть($a);
покрутить($a);
расстрелять($a);
echo ($a);
Чем так
$a = 'abcd';
$a = повернуть($a);
$a = покрутить($a);
$a = расстрелять($a);
echo $a;
Изменил: Lugaro (29.07.2011 / 17:20)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск