- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
class TestThis
{
public $property = 'property';
public function test1()
{
$this->this($this, new ArrayObject);
$this['wierd'] = true;
print_r($this);
print_r($this->property . PHP_EOL);
return $this;
}
public function test2()
{
print_r($this);
}
public function this(&$object, $value)
{
$object = $value;
}
}
(new TestThis)->test1()->test2();
Вопрос к самому похапе.
Так вот нельзя:
$this = че-нибудь
"Cannot re-assign $this"
А вот как выше можно!
tirinox 03.09.2014 06:11 # 0
inkanus-gray 03.09.2014 15:58 # 0
bormand 03.09.2014 06:50 # +2
А в чем вообще смысл этого действа?
inkanus-gray 03.09.2014 16:00 # 0
kegdan 03.09.2014 16:31 # +10
guest 09.09.2014 01:30 # +1
а от таких изощрений уже не защитились.
bormand 09.09.2014 05:35 # +1
Да и пускай бы делали. Это ж самый обычный аргумент функции.
doo_dee_doo_dmt 12.09.2014 03:19 # +1
bormand 12.09.2014 06:09 # +1
Вот именно поэтому в жабе, питоне и прочих языках вообще не стали мутить передачу по ссылке.
bormand 12.09.2014 06:21 # 0
DypHuu_niBEHb 14.12.2022 19:54 # 0
То есть хеши копировать?
Da_xyu_BAC_PA36EPET 15.12.2022 02:28 # 0
doo_dee_doo_dmt 12.09.2014 07:09 # +1
Тут просто или трусы снять или крест надеть уж
inkanus-gray 12.09.2014 15:00 # +1
Безопасным было бы запретить конструкцию foreach($array as &$value) и вместо неё писать: foreach($array as $key=>$value), но тогда вместо короткого $value в левой части выражений придётся всюду писать $array[$key] (что было бы понятнее, но программистам это делать лень).
bormand 12.09.2014 15:12 # 0
А почему value не сделали ссылкой по умолчанию?
bormand 12.09.2014 15:15 # +1
Видимо, как раз из-за интересных последствий, которые показаны в том примере на ideone - скопов то нет, и $value = 'foo' после цикла поместит 'foo' в последний просмотренный циклом элемент массива...
inkanus-gray 12.09.2014 16:05 # 0
bormand 12.09.2014 16:10 # +1
inkanus-gray 12.09.2014 16:17 # +1
Казалось бы, это тот самый случай, где ссылка и использование счётчика вне цикла оправданы... но всё равно говно, потому что можно сделать по-другому.
inkanus-gray 12.09.2014 15:18 # 0
P.S. Ну почему я не обновил страницу перед отправкой комментария?
bormand 12.09.2014 15:39 # +1
Потому что нормальных скопов нет :)
guest 26.09.2014 05:39 # −1
guest 30.09.2014 20:42 # −1
3.14159265 12.09.2014 23:02 # +1
Ссылка может нас менять,
Ты другой, и я не та.
Значит нужно все начать
С нового инта.Какие -то ебанаты решили послушать глубокой ночью музончик на максимальной громкости. Хорошо что я еще спать не ложился.
defecate-plusplus 12.09.2014 23:11 # 0
ты тоже из сибирских руд нам тут пишешь?
1024-- 12.09.2014 23:16 # +4
TerraformGovno 11.12.2022 16:05 # 0
inkanus-gray 03.09.2014 18:17 # +5