![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
товарищи! взываю к вашему разуму и совести
самая трудно понимаемая для меня часть доков по пхп - изменения при появлении новой версии. дошёл до меня слух (а самому мозга не хватило раскопать и санализировать), что в пхп 5.4 отказано было от ссылок, а именно от такого ведения кода:
то ли ссылки тут признаны несущественными, так как объект всё равно всегда передаётся по ссылке (но как тогда быть с массивами?). то ли такая система вообще теперь признаётся не рабочей. вопрос: как изменения коснуться такого ведения кода? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
bars80080, Да обычное "приближение языка к Java". Вот только тянет назад груз уже написанных скриптов, которые тоже как бы должны работать, без особой кровищщщщи при переписывании. Поэтому "хвост собаки отрезаем постепенно, из жалости".
Создатель Javascript сразу все объекты передает по ссылке, включая и массивы. Такая позиция честнее На такой код будет вполголоса ворчать IDE (phpStorm). Такой код, если специально озадачится установкой флагов, будет вызывать нотисы при выполнении. А больше никаких реальных изменений пока нет. Амперсанд перед объектом просто игнорируется. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а массивы теперь будут всегда передаваться по ссылке? (и без амперсанда)
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Не! Массивы - через амперсанд. Мы же любим нашу собаку и не можем отрезать ей хвост сразу. Будем отрезать кусочками -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
то есть для массивом ничего не изменилось
и для объектов ничего не изменилось, надо только отказываться от амперсанда для повторения предыдущего надо всего лишь писать:
и я по прежнему буду иметь в $this->A нужный мне объект |
|||
|
||||
| AVA12 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 4.5.2008 Репутация: 0 Всего: 4 |
Не Иван Иванович, а Петр Петрович, и не в лотерею, а в карты... В общем, ссылки и передачу/возврат по ссылкам никто не отменял. Так что можно по-прежнему смело объявлять что-нибудь вроде function &foo(&$bar) {}. Операторы ссылок запрещается использовать только при вызове функций, т. е. вместо $baz = &foo(&$bar) нужно писать $baz = foo($bar), но результат будет тот же (если функция правильно задана). Вот и все изменения. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
добавлю пять копеек. java и хвост собаки имхо непричем.
просто навели порядок: запретили определять режим передачи при вызове функции, его определяет теперь определяет автор функции, а не автор вызывающего кода. что бы не писать/читать на заборах проще обратиться к первоисточнику http://php.net/manual/ru/language.references.pass.php |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |