![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
N0dwis, это без разницы. Во всех скриптах для PHP4 оставлен указатель. При этом на PHP5 все скрипты с амперсендом прекрасно работают. Взять хотя бы PEAR. Да, этот знак избыточен, но он не может быть причиной ошибки. Потом, такие слова как адрес в PHP вообще не имеют смысла, в C, Delphi - да, а в PHP это просто прием, который позволяет двум переменным ссылаться на одну ячейку памяти.
|
|||
|
||||
Canarat |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 11.3.2008 Где: Каспий Репутация: 5 Всего: 5 |
В общем выяснились некоторые подробности, касательно РНР разработчика, использовавшего мой сервер некоторое время.
Все дело в ze1.compatibilty_mode(хотя Zend Accelerator не подключен), строчке из php.ini, я не обратил внимания на неё когда SelenIT сделал предположение. Но такое построение кода достаточно тривиально, и не уверен, что оно могло измениться с ze1 до ze2. Может, все-таки, баг? |
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 2 Всего: 4 |
Ну да, но суть-то такая же... А как по другому это назвать? ![]() Canarat, не баг. Я включил у себя zend.ze1_compatibility_mode - результат тот же, что и у тебя! В последних 3-х случаях не происходит приращение счетчика! Буду копать дальше. Это сообщение отредактировал(а) N0dwis - 16.3.2008, 21:13 |
|||
|
||||
Canarat |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 11.3.2008 Где: Каспий Репутация: 5 Всего: 5 |
N0dwis, я имею в виду именно баг PHP с такими настройками.
|
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 2 Всего: 4 |
"Ну, барин, ты задачи ставишь!" (с) к/ф "Формула любви".
НАШЕЛ! Не глюк и не баг, все работает, как и должно. По этому поводу есть и статья в документации References inside the constructor. И если подправить код вот так:
то все работает! Оказывается, конструктор возвращает не сам созданный объект, а его копию! Т.е. $this в конструкторе и результат new Class1 - это не одно и то же! А чтобы было одним и тем же, нужно использовать не оператор копирования (=), а оператор получения ссылки (= &) (Это практически цитата из документации). ![]() Блин, полезно все-таки иногда вдумчиво читать инструкции... Это сообщение отредактировал(а) N0dwis - 16.3.2008, 21:56 |
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
N0dwis, если ты про это - http://www.php.net/manual/ru/language.oop.newref.php ,
то оно относится к PHP 4, и это справедливо для любых операций, где присваиваются объекты в PHP 4. В 4ке передаются копии объектов. В 5ой версии все объекты передаются по ссылкам, в т.ч. возвращаемое конструктором значение $this. Это сообщение отредактировал(а) flashaa - 16.3.2008, 22:12 |
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 2 Всего: 4 |
Именно про это. Canarat, ведь сказал, что у него php работает в режиме совместимости с 4-й. |
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
N0dwis, молодца. Точно, с такой опцией передаются копии объектов как в PHP4 и амперсенд в самый раз.
Это сообщение отредактировал(а) flashaa - 16.3.2008, 22:20 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |