Статус:
Offline
Реєстрація: 16.08.2014
Повідом.: 310
Реєстрація: 16.08.2014
Повідом.: 310
Вопрос насчет return в PHP
Приветствую!
Сабж настолько замучал и въелся в голову, что пришлось даже немного сон отложить. Ситуация вот, собственно, в чем: Есть к примеру две функции - key($x) и current($x). При одинаковых ситуациях (Out of Range, Empty Array) в мануале написано, что одна возвращает NULL, а вторая FALSE. Пытаюсь понять логику, почему именно так. Начал копать и накопал, что для php < 4.2.0 многие функции в нештатной ситуации возвращали NULL, с 5-й версии они стали возвращать уже FALSE. А с версии 5.3.0 при некорректных аргументах возвращают снова NULL. Например array_search.
У меня вот вопрос. Есть ли какой-то вообще стандарт для возвращаемых значений? Мне, например удобно для данных возвращать NULL или сами данные, а для вопросов возвращать только boolean-значения тем самым не мешая их с данными. Сам код становится немного симпатичнее и компактнее, тем более сама функция автоматом при завершении вернет NULL. Но насколько это корректно я уже и не знаю. Хотелось бы делать по-правильному. Для многих стандартных функций я написал обертки, чтобы можно было их вкладывать друг в друга. Но для этого надо все привести к единому виду и подобрать необходимый контекст. Хотелась бы услышать любое ваше мнение.
ps. Касательно key() и current() считаю правильным вернуть NULL, так как выход за пределы ошибкой, по сути, не считается. Это я написал, чтобы до конца раскрыть ход мыслей. У меня есть функция i2v(), которая возвращает значение массива по его смещению. Вот никак рука не поднимается написать return FALSE в случае запредельного индекса, особенно, когда применяю ее для списка аргументов
Исключения или синтаксический сахар на простейшие функции вешать не хочу, так как в 99% случаях это просто никогда не понадобится. Сорри за большой текст.
Приветствую!
Сабж настолько замучал и въелся в голову, что пришлось даже немного сон отложить. Ситуация вот, собственно, в чем: Есть к примеру две функции - key($x) и current($x). При одинаковых ситуациях (Out of Range, Empty Array) в мануале написано, что одна возвращает NULL, а вторая FALSE. Пытаюсь понять логику, почему именно так. Начал копать и накопал, что для php < 4.2.0 многие функции в нештатной ситуации возвращали NULL, с 5-й версии они стали возвращать уже FALSE. А с версии 5.3.0 при некорректных аргументах возвращают снова NULL. Например array_search.
У меня вот вопрос. Есть ли какой-то вообще стандарт для возвращаемых значений? Мне, например удобно для данных возвращать NULL или сами данные, а для вопросов возвращать только boolean-значения тем самым не мешая их с данными. Сам код становится немного симпатичнее и компактнее, тем более сама функция автоматом при завершении вернет NULL. Но насколько это корректно я уже и не знаю. Хотелось бы делать по-правильному. Для многих стандартных функций я написал обертки, чтобы можно было их вкладывать друг в друга. Но для этого надо все привести к единому виду и подобрать необходимый контекст. Хотелась бы услышать любое ваше мнение.
ps. Касательно key() и current() считаю правильным вернуть NULL, так как выход за пределы ошибкой, по сути, не считается. Это я написал, чтобы до конца раскрыть ход мыслей. У меня есть функция i2v(), которая возвращает значение массива по его смещению. Вот никак рука не поднимается написать return FALSE в случае запредельного индекса, особенно, когда применяю ее для списка аргументов
Исключения или синтаксический сахар на простейшие функции вешать не хочу, так как в 99% случаях это просто никогда не понадобится. Сорри за большой текст.