Функция для избежания неопределенной переменной - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь написать функцию, чтобы избежать получения переменной неопределенной ошибки. Прямо сейчас у меня есть код, подобный этому:

function check($str){
  if(isset($str)){
   $s = $str;
  } else {
   $s = "";
}
}

check($_GET['var']);

Get var не установлен. Я получаю переменную неопределенную ошибку на моем экране. Как я могу изменить свою функцию, чтобы не выдавать эту ошибку и просто возвращать "", если она не установлена? Я не хочу кодировать 100 if, чтобы избежать получения неопределенной переменной. Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

У нас уже есть PHP, чтобы проверить это. Он называется isset(). С его помощью вы можете проверить, существует ли переменная. Если вы хотите создать его с некоторыми значениями по умолчанию, если он еще не существует, у нас также есть синтаксис для него. Это оператор с нулевым слиянием.

$_GET['var'] = $_GET['var'] ?? '';
// or since PHP 7.4 
$_GET['var'] ??= '';
0 голосов
/ 10 октября 2019

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

function check(&$str){
    if(!isset($str)){
        $str = "not set";
    }
}
check($_GET['var']);

echo $_GET['var'];
...