Получите переменные данные снаружи из оператора Switch в переполнении стека

В моем коде у меня есть переменная-присваивание некоторых данных внутри оператора switch. Но эта переменная не выводит данные, когда она вызывает вне оператора switch. Пример кода здесь.

switch (some condition){
case 1:
$userid = $receiver->getMessage();
break;
case 2:
break;
}

echo $userid;

как я решаю эту проблему.

-1

Решение

Переменная объявлена ​​внутри switch Заявление видно снаружи, конечно.

Проблема в том, что когда внутри переключателя не объявлено, вы можете избежать этого двумя способами:

  1. $userid = 'default value'; до switch
  2. echo isset($userid) ? $userid : 'default value'; после switch,

Значение по умолчанию может быть любым, если ничего, использовать пустую строку.

1

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

По возможности, это объявить переменную перед вызовом оператора switch.

$userid = "";
switch (some condition){
case 1:
$userid = $receiver->getMessage();
break;
case 2:
break;
}

echo $userid;
0

Вы ничего не делаете с делом 2 или же дефолт. Если вы структурируете это так, то это должно работать.

switch ($condition) {
case 1:
$userId = $receiver->getMessage();
break;
case 2:
$userId = $receiver->someOtherMessage();
break;
default:
$userId = null;
break;
}

В другой момент вы можете проверить, действительно ли был установлен userId.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector