@phpgeeks

Страница 554 из 8430
Sergey
07.08.2016
11:25:39
Видимо значения свойств внутри объектов передаются только копированием

Владимир
07.08.2016
11:28:38
Полагаю, странным было бы иное поведение

Mikhail
07.08.2016
11:47:32
Если свойство - объект то по ссылке опять же

Sergey
07.08.2016
11:48:36
Google
Sergey
07.08.2016
11:49:17
Если свойство объект, то по значению

Я тоже еще 20 минут назад думал, что по ссылке все объекты передаются, если явно не указано другое

Но хер )

Mikhail
07.08.2016
11:55:51
Если свойство объект, то по значению
Странно, оф.маны даже говорят что по ссылке

Начиная с PHP 5 объектная переменная больше не содержит сам объект как значение. Такая переменная содержит только идентификатор объекта, который позволяет найти конкретный объект при обращении к нему. 

Дома буду надо будет затестить. Не скажешь на какой версии такое поведение?

Sergey
07.08.2016
11:56:48
class B { public $val = 10; } class A { private $var1 = null; public function __construct() { $this->var1 = new B(); } public function delete() { $tmp = $this->var1; $tmp = null; } public function debug() { echo "<pre>"; print_r($this->var1); echo "</pre>"; } } $A = new A(); $A->debug(); $A->delete(); $A->debug();

вот пример

PHP 5.5.9

Mikhail
07.08.2016
11:57:38
Конечно не работает

Ты затираешь ссылку же

tmp и var1 это две разные переменные, которые ссылаются на один экземпляр класса

Или херню несу, ещё не спал

Google
Sergey
07.08.2016
12:01:42
Когда объект передается как аргумент функции, возвращается или присваивается другой переменной, то эти разные переменные не являются псевдонимами (алиасами): они содержат копию идентификатора, который указывает на один и тот же объект.

да, блин

надо явно передавать ссылку

Бля

)

я запутался )

всё

я понял

я пытался осознавать ссылку в PHP точно также как в Си

а это несовсем верно

Mikhail
07.08.2016
12:04:07
ideone.com/xdL8pc

Вот пример

Sergey
07.08.2016
12:04:45
да

Mikhail
07.08.2016
12:04:47
Используй unset, вместо null

Должно помочь, для удаления(но не факт)

Sergey
07.08.2016
12:05:08
никакой разницы

потому что ссылки в php работают не как в си

Ссылка в PHP это псевдоним (алиас), который позволяет присвоить двум переменным одинаковое значение. Начиная с PHP 5 объектная переменная больше не содержит сам объект как значение. Такая переменная содержит только идентификатор объекта, который позволяет найти конкретный объект при обращении к нему. Когда объект передается как аргумент функции, возвращается или присваивается другой переменной, то эти разные переменные не являются псевдонимами (алиасами): они содержат копию идентификатора, который указывает на один и тот же объект.

Mikhail
07.08.2016
12:06:24
Ссылки работают так же. Не стоит путать с указателями в си

Sergey
07.08.2016
12:06:32
class B { public $val = 10; } $var1 = new B(); $var2 = $var1; print_r($var1); //Напечатает объект unset($var2); print_r($var1); //Напечатает объект exit;

Google
Mikhail
07.08.2016
12:06:37
Кстати в си нет ссылок. Они есть в с++

Sergey
07.08.2016
12:07:20
$var1 - это, судя по определению, конкретный объект

ну всмысле да, суказателями я и спутал

а $var2 - содержит только индетификатор, по которому я нахожу $var1

соответственно менять я его могу

а удалить - хер, т.к. при $var2 = null или unset($var2) я просто удаляю идентификатор

а конкретный объект остается нетронутым

Mikhail
07.08.2016
12:14:00
Unset работает на объекты

Не веришь - проверь через деструктор

Sergey
07.08.2016
12:14:25
class B { public $val = 10; } $var1 = new B(); $var2 = $var1; print_r($var1); //Напечатает объект unset($var2); print_r($var1); //Напечатает объект exit;

вот так попробуй

и var1 Никуда не денется

Mikhail
07.08.2016
12:15:08
Правильно

Aleksandr
07.08.2016
12:15:13
всем привет… помогите плиз с таким вопросом по симфони есть вьюшка со списком категорий и формой для добавления новой категории

на форме висит ajax запрос

как после отправки формы обновить список?

Mikhail
07.08.2016
12:15:35
Потому что у тебя объект будет убивать gc

Если что-то ещё ссылается на объект, то он не удалится

Через деструктор проверяй, а не таким образом

Yokai
07.08.2016
12:19:27
Еще бывают бесплатные хостинги php?

Google
Aleksandr
07.08.2016
12:19:44
бывают

но без доменов второго уровня

Yokai
07.08.2016
12:20:10
а ssl?

Aleksandr
07.08.2016
12:20:22
а вот это уже хз

Yokai
07.08.2016
12:20:24
сертификат сам сделаю, лишь бы дали возможность прикрутить

Aleksandr
07.08.2016
12:20:40
скорее всего ты уже губу раскатал :) но может быть и есть

у меня приятель под собственный проект небольшой юзает спринтхост

Yokai
07.08.2016
12:23:11
тут у меня паранойя раскатана, а не губа =\ Я ведь вполне готов заплатить 250 рублей за месяц, а вот написать им свой телефон или своим платежом дать номер карты - ...

Sergey
07.08.2016
12:28:45
Если что-то ещё ссылается на объект, то он не удалится
чтобы ничего не ссылалос , надо $var1 убить

Admin
ERROR: S client not available

Mikhail
07.08.2016
12:29:08
Именно

Sergey
07.08.2016
12:29:36
ну мне такое поведение было не нужно

я хотел убивать $var1 через $var2

а для этого, как оказалось, без & не обойтись

в общем, как оказалось, я смотрел на ссылки в PHP через призму указателей в Си

что было в корне не верно

Mikhail
07.08.2016
12:32:48
++

Sergey
07.08.2016
12:40:37
мде, век живи - век учсиь

"в PHP 5 переменные объектов, так же как и ресурсы, являются просто указателями на реальные данные объекта, поэтому ссылки на объекты не те же самые "ссылки", о которых говорилось ранее"

Отлично ) теперь точно можно к деревьям приступать по нормалу

Google
Sergey
07.08.2016
12:45:22
разбирался тут векторами, стеками, деками, очередми и списками

и был затык с удалением из очереди

спасибо Mikhail, общаясь с тобой я правильные вещи в интернетах нашел

Mikhail
07.08.2016
13:08:27
разбирался тут векторами, стеками, деками, очередми и списками
Относительно бесполезная вещь, для php разработчика. В реальности не могу представить, когда пригодится

Rodion
07.08.2016
13:08:46
кстати, да

просвети, зачем

Sergey
07.08.2016
13:08:53
названия раскрывать не буду

Rodion
07.08.2016
13:09:01
и там это спрашивают?

Sergey
07.08.2016
13:09:06
так вот там меня еще ни разу не спросили про само PHP

алгоритмы, структуры данных, ООП подход без привязки к языку, SOLID, ACID

Mikhail
07.08.2016
13:09:35
Ну сами алгоритмы полезны

Sergey
07.08.2016
13:09:36
Уровни нормализации БД наизусть

Mikhail
07.08.2016
13:10:34
Но реализация на php бесполезное занятие. А вообще, всё о чем мы говорили - инфа из универа

Sergey
07.08.2016
13:11:07
да, инфа из универа - это точно

но что я делал в универе?

Mikhail
07.08.2016
13:12:10
http://php.net/manual/ru/book.spl.php

Sergey
07.08.2016
13:12:17
а я в универе тусил и учился на уровне "три поствят и збс"

Mikhail
07.08.2016
13:12:28
Вот готовые классы для php

Sergey
07.08.2016
13:13:48
да, я знаю что в SPL они есть

Mikhail
07.08.2016
13:13:50
а я в универе тусил и учился на уровне "три поствят и збс"
Я чтоб тусить в универе в том числе делаю за других лабы. Мне это час-полтора и бутылка виски/рома или аналогичный ништячок. Зато к экзаменам потом не надо готовиться в принципе

Sergey
07.08.2016
13:14:22
мне почти 30, я очень много чего забыл уже

Страница 554 из 8430