PHP: Правильный логический условный аргумент для возвращаемого значения функции? - PullRequest
2 голосов
/ 27 марта 2011

Я написал функцию, которая возвращает данные в случае успеха и ложь в случае ошибки.

Мне было интересно, считается ли это правильным способом оценки возвращаемого значения в php.

function data(){
  if($all_is_good){
    return $data
  }else{
    return false;
  }
}

$data = data(); //basically either a long series of strings or arrays

if(!$data){  //<-- this is the line I'm concerned about, is it safe to assume this?
   echo 'oh no, bad stuff happened';
}

Большое спасибо!

Ответы [ 3 ]

4 голосов
/ 27 марта 2011

То, что у вас есть, прекрасно, хотя в качестве альтернативы вы можете использовать if($data === false) {. Это гарантирует, что $data на самом деле false, учитывая, что 0 и NULL также рассматриваются как false.

3 голосов
/ 27 марта 2011

Зависит от того, что именно $data (и его тип, и его значение).Имеет смысл оставить все как есть (если тип значения в $data не определен) или сделать проверку явной (например, $data == false или empty($data)), если это известный тип.Это действительно зависит от конкретных обстоятельств.

См. Преобразование в логическое значение .

1 голос
/ 27 марта 2011

Это безопасно, если не существует действительного значения для $data, которое оценивается как ложное. Длинный (то есть непустой) ряд строк или массивов не оценивается как ложный, но все же это потенциальная ловушка.

Вы можете рассмотреть возможность строгого сравнения: if(data===False)

...