[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить данные из функции
Ёжик
Всем привет кому по статусу :) , остальным здраствуйте. :P

Как правильно получить данные из функции.

if(тут вызывается функция) 


В функции проверяется существуют или нет запрошенные данные, если да, то из базы достаётся необходимая информация, если нет возвращается FALSE. Конкретно, если вернуть false, то всё нормально. Если вернуть массив с кучей данных, получится true. Подскажите в if нормально возвращать большой массив?

_____________
Ищу работу в Питере или Удалённо, учеником JAVA или PHP программиста. Писать в ЛС.
AllesKlar
Не делай так.
Это можно, но не делай.
Функция должна возвращать определенный тип данных либо null, и мешать разные типы данных в кучу - это говнокод, который, к сожалению, позволяет php

$result = myfunction();
if($result != null) {
......
}


_____________
[продано копирайтерам]
twin
Цитата (AllesKlar @ 30.06.2018 - 15:12)
Функция должна возвращать определенный тип данных либо null, и мешать разные типы данных в кучу - это говнокод, который, к сожалению, позволяет php

Вот слышу голос я не мальчика, но мужа джависта. smile.gif
С чего бы вдруг говнокод? Если язык слаботипизирован изначально, почему не пользоваться этим его преимуществом? Не, я понимаю, что строгая типизация кошерна, но зачем резать себе крайнюю плоть, если ты не иудей? smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Ёжик @ 30.06.2018 - 14:47)
Подскажите в if нормально возвращать большой массив?

Нормально, но не совсем читабельно:

   if (false !== ($result = myfunction())) {


Тут вопрос в том, в каком случае вернуть false. В случае отсутствия результата лучше конечно null, в случае форсмажора - false. Так что выбирать нужно по ситуации.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Ёжик, старайся сделать так чтобы функция делала что то одно.

Вот тебе нужна проверка, заведи функцию которая будет только проверять.

Нужно получить данные - заведи функцию, которая будет данные доставать, а если не найдены - кидать исключение NotFound

_____________
There never was a struggle in the soul of a good man that was not hard
Ёжик
Чтобы проверить и получить данные выполняется один запрос, поэтому нецелесообразно использовать в конкретном случае две функции.

Зачем выкидывать исключение, если это предусмотренно программой непонятно (запрошенные данные могут существовать или нет).

Хотя в силу моей неопытности могу ошибаться.

_____________
Ищу работу в Питере или Удалённо, учеником JAVA или PHP программиста. Писать в ЛС.
twin
try{

}
catch(Exception $e)
echo "Ошибка не всегда исключение".
}
:)

Исключение !== ошибка. Исключение, это когда ситуацию можно исправить, либо отреагировать каким то адекватным способом. А если это ошибка, её нужно слогировать и немедленно остановить скрипт. Ибо может возникнуть непредвиденная ситуация. Все это касается бизнес-логики.

Допустим у тебя две функции. Одна ищет товар на складе, другая в резерве (неприкосновенном запасе). Тогда при отсутствии результата первой функции можно бросить исключение, поймать его, и в блоке catch запустить вторую, если разрешено трогать резерв.

А если это ошибка (кто то что то поломал), то смысла в исключении нет. Ибо ошибки нужно исправлять в коде, а не в скрипте. Ровно тоже самое с пользовательским ошибками. Нафига кидать исключение на то, что юзер ввел невалидный емэйл. На это нужно отреагировать более красиво.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
AllesKlar
Цитата (twin @ 1.07.2018 - 02:28)
С чего бы вдруг говнокод? Если язык слаботипизирован изначально, почему не пользоваться этим его преимуществом? Не, я понимаю, что строгая типизация кошерна, но зачем резать себе крайнюю плоть, если ты не иудей?


Если страничка а-ля "Вот я, а вот моя собака", то не вопрос.
Как только дойдет до нормального API, будет локти кусать... вернее пользователи его API будет материть на чем свет стоит, а ручки-то уже кривые... выпрямлять трудно будет.

_____________
[продано копирайтерам]
twin
Да че вы пугаете все - придет серенький волчек и укусит за бочек. Если есть такая вероятность, и она велика, то стоит задуматься. Чем это в данном случае то может навредть? И как же YAGNI?
Я вот постоянно это юзаю и еще ни разу не кусал локтей.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.