Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как ведет себя return вне фукнции?
Покинул форум
Сообщений всего: 71
Дата рег-ции: Июль 2010
Помог: 0 раз(а)
Если я вызову оператор return вне функции (в теле файла), то интерпретация текущего файла прекратится (и управление перейдет в файл, который его заинклудил) или как?
В фукнциях часто бывает удобно писать в таком стиле:
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Ticksy пишет:
Если я вызову оператор return вне функции (в теле файла), то интерпретация текущего файла прекратится (и управление перейдет в файл, который его заинклудил)
Именно так, да.
----- PostgreSQL DBA
evgenijj
Отправлено: 22 Сентября, 2011 - 21:24:21
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Мелкий пишет:
Именно так, да.
Что в общем-то нелогично. О чем думали разработчики PHP? С моей точки зрения, вызов return вне функции должен порждать fatal error. Return (согласно синтаксису PHP) может быть использован ТОЛЬКО внутри функции. Использование return ВНЕ функции порождает трудноуловимые ошибки. Ticksy
Использование недокументированных возможностей языка -- дурной тон. Это -- лишние трудности при поддержке кода.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
синтаксис php итак не очень богат, пусть в нём будет хоть чтото интересное
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Ch_chov
Отправлено: 23 Сентября, 2011 - 06:10:46
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
evgenijj пишет:
Использование недокументированных возможностей языка -- дурной тон.
Почему не документированных? Всё задокументировано.
Если конструкция return будет вызвана из глобальной области определения (вне пользовательских функций), то скрипт также завершит свою работу, а return также возвратит определенные значения. http://php.su/learnphp/cs/?rc
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
DeepVarvar пишет:
А давайте посмотрим в сторону continue
Дык к нему-то как раз претензий нет, он не имеет смысла и вызывает fatal error, будучи вызванным не из цикла.
----- PostgreSQL DBA
EuGen
Отправлено: 23 Сентября, 2011 - 09:33:02
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Ни разу не доводилось использовать return ни в том ни в другом случае (то есть ни просто в глобальной области скрипта, ни с расчетом на include). Да и сам include уже не помню когда использовал сам по себе, вне контекста __autoload
Дурные привычки порождают дурной стиль и не очень важно, документирована возможность или нет.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.