Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.01.2015, 11:48
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
Всем привет. С коллегой перелопатил уже всё. Но удаление амперсанда из следующей конструкции приводит к ошибке логики Код: php 1. Во всех источниках пишут, что в пхп5 поведение должно быть ИДЕНТИЧНЫМ. Но из сложившейся ситуации видно, что в чём-то всё же отличие есть. Подскажите, пожалуйста, в чём же оно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2015, 19:09
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
Програмёр, Включите вывод всех ошибок и увидите нечто типа Deprecated: Assigning the return value of new by reference is deprecated in ... объекты по рефам и так передаются. А что там с логикой, то надо включить вывод всех ошибок и может что еще напишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2015, 19:28
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
Полагаю, что этот амперсанд остался из кода, писанного под PHP 5.2 или более раннего. На практике действительно не всегда удаётся убрать амперсанд без потери работоспособности. Однако, найти хостинг с поддержкой старых версий PHP пока что не составляет большого труда и не является проблемой. Ну, чтоб не тратить время на исправление кода. Если же вопрос "в чём дело" чисто академический, с целью разобраться в тонкостях - то тут кроме вывода ошибок ещё и отладкой заняться придётся. Если это Ваш проект - проблем не должно быть, а если это какой-то сторонний движок - тут надо временем на разбор запастись. Что по мне, так я бы сравнивал при отладке работу движка на "родной" версии PHP, где он работает без ошибок, и на проблемной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2015, 19:35
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
vkle, По документации с версии 5 началась дефолтная передача объекта по ссылке вместо копии. Ну а рефы на объект как таковые требуются в случае той самой логики оперирования переменными-ссылками-на-объект (ponter'ами). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2015, 21:37
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
deblogger, Ну да, по логике вроде не должно быть разницы. Однако, по факту бывает что-то "не так". Возможно, разработчики PHP не стали делать полную поддержку обратной совместимости. А может какая другая причина этого явления. Вглубь не копал как то за ненадобностью по моим задачам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2015, 05:51
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
vkleПолагаю, что этот амперсанд остался из кода, писанного под PHP 5.2 или более раннего. На практике действительно не всегда удаётся убрать амперсанд без потери работоспособности. Однако, найти хостинг с поддержкой старых версий PHP пока что не составляет большого труда и не является проблемой. Ну, чтоб не тратить время на исправление кода. Если же вопрос "в чём дело" чисто академический, с целью разобраться в тонкостях - то тут кроме вывода ошибок ещё и отладкой заняться придётся. Если это Ваш проект - проблем не должно быть, а если это какой-то сторонний движок - тут надо временем на разбор запастись. Что по мне, так я бы сравнивал при отладке работу движка на "родной" версии PHP, где он работает без ошибок, и на проблемной. Сначала вопрос был очень актуальным, но потом удалось заменить pear на новый. Сейчас вопрос чисто академический. Но причину странного поведения отладчиком не отловить: ошибка в самом ядре пира, а уж его перелопатить займет не один день ) Очень удивляет такое поведение. Ведь была передача по ссылке, таковая же и осталась. Странно... В любом случае всем спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2015, 10:10
|
|||
|---|---|---|---|
|
|||
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
Програмёр, Ты бы пример кода привёл , что б проявилось различие. я как не пытался на 5.5 версии добиться разницы, не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.01.2015, 11:27
|
|||
|---|---|---|---|
new и &new. Удаление амперсанда приводит к ошибке (php5.4) |
|||
|
#18+
alex564657498765453Програмёр, Ты бы пример кода привёл , что б проявилось различие. я как не пытался на 5.5 версии добиться разницы, не получилось. С примером кода будет сложно. Проект фиг знает какого года (при чём без ООП и даже элементарной шаблонизации, там html прямо из функций ядра выплёвывается), а сама ошибка возникает внутри пира. Могу только привести строку из пира из-за которой возникает ошибка, но привести часть кода, которая использует функцию с ошибкой почти нереально. А если я даже и выловлю этот участок кода, никто из вас даже разбираться в нём не захочет (я то за деньги скрипя зубами это делаю :) и то, вроде уламал начальство на переписывание этой системы с нуля). Ладно, может как-нибудь позже ещё столкнусь с подобным (в более адекватном коде). Всем спасибо за участие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&mobile=1&tid=1462062]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 403ms |

| 0 / 0 |
