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

start [/forum/topic.php?fid=23&msg=38861189&tid=1462062]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 372ms |

| 0 / 0 |
