концептуальная — разница между этими двумя операторами возврата в переполнении стека

нам интересно, что это лучший способ вернуться empty null no result в php мы часто используем это

function doThis($a){
if($a == 0){
return '';
}else{
// complex mysql
return $result;
}

еще один способ сделать это

function doThis($a){
if($a == 0){
return null;
}else{
// complex mysql
return $result;
}

теперь мы сравниваем вот так

if(doThis(5)){
// do something
}

или же

if(!is_null(doThis(5)){
// do something
}

мне было интересно, каков наилучший подход для этого?

0

Решение

В вашей функции есть проблема doThis возле if($a = 0){,

== используется для сравнения.

= используется для присвоения значения.

0

Другие решения

Null означает «ничего». VAR не был инициализирован.

Ложный означает «не верно в логическом контексте». Используется, чтобы явно показать, что вы имеете дело с логическими проблемами.

0 является целым Ничего общего с остальным выше, используется для математики.

if($a = 0) это назначит значение не сравнивать
тебе нужно попробовать if($a == 0)

0

Говорить о «лучшем способе» без контекста не имеет смысла. Как правило, вы должны написать код для достижения этих целей:

Есть общие случаи, когда пустое значение следует выбирать для данного непустого значения.

Например, если вы ищете конкретную сущность в базе данных. В случае успеха ваш код возвращает объект, так что, очевидно, не должно быть пустой строки в случае неудачного поиска. Обычная практика — возвращать ноль или NullObject в таком случае.

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

Если ваш код работает со строками, вы обычно не хотите возвращать нуль в какой-то момент.

Самый очевидный случай: если вы возвращаетесь true в случае успеха, вы не должны возвращать пустую строку в случае сбоя.

Так, использовать правила здравого смысла и немного логики, чтобы выяснить правильное возвращаемое значение.

Также зависит от контекста: есть ли разница в вашем случае, если функция возвращает null, '' или же false, вы должны использовать дополнительные проверки возвращаемого значения (не забывайте использовать доброе имя для метода проверки). Если вашему коду не важно, что внутри, если это не объект, то if($something) будет достаточно.

Эти правила обычно действительны для любого языка программирования, а не только для PHP.

0
По вопросам рекламы [email protected]