Где вернуть false в функции PHP? - PullRequest
5 голосов
/ 13 апреля 2011

Это

function doThings(){
  if($oh){
    return $oh;
  }
  return false;
}

равно этому

function doThings(){
  if($oh){
    return $oh;
  }else{
    return false;
  }
}

Спасибо!

Ответы [ 11 ]

9 голосов
/ 13 апреля 2011

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

function doThings(){
  $flag = false;
  if($oh){
    $flag = $oh;
  }
  return $flag;   
}
9 голосов
/ 13 апреля 2011

В сценарии, который вы описали выше, Да .Либо должно работать нормально.Я предпочитаю первый метод, меньше печатать и все.

3 голосов
/ 13 апреля 2011

Да, эти функции в точности эквивалентны по поведению.

2 голосов
/ 13 апреля 2011

Да.

Также они более или менее равны:

function doThings(){
    return $oh;
}

Это не совсем верно, поскольку в PHP есть другие значения "falsey", кроме false, но если вы хотите вернуть либо $oh, либо значение falsey, тогда это будет работать нормально.

Другой способ написать эквивалентную функцию:

function doThings(){
    return $oh ? $oh : false;
}
1 голос
/ 13 апреля 2011

Я бы написал так:

function doThings() {
  return $oh ?: false;
}

Или с более ранними версиями PHP:

function doThings() {
  return $oh ? $oh : false;
}

Или в зависимости от функции:

function doThings() {
  $oh = null; // set to some default;

  // do stuff

  return $oh;
}
1 голос
/ 13 апреля 2011

Да, они одинаковы.

Quicktip:

Я предпочитаю следующее:

function do() {
    if (!$oh) {
      return false;
    }
    return $oh;
}

Таким образом, у вас нет лишних скобок, как во втором примере. Но вы всегда знаете, где возвращается ваше значение (в конце функции). Это позволяет быстрее находить и просматривать функции.

1 голос
/ 13 апреля 2011

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

0 голосов
/ 25 июля 2013

Обратите внимание, что поскольку return - это языковая конструкция, а не функция, скобки, окружающие ее аргументы, не требуются. Обычно их опускают, и вам действительно следует это делать, поскольку в этом случае PHP выполняет меньше работы.

0 голосов
/ 31 января 2013
  1. оба имеют одинаковое поведение.
  2. Вы можете разместить в зависимости от вашего сценария.
0 голосов
/ 05 октября 2012

Оба делают то же самое. Как только встречается оператор return, управление передается обратно к коду, который вызывает эту функцию.

Первый предпочтительнее второго из-за меньшего количества кода.

...