При попытке считать значение 'получить' переменной, что происходит, если упомянутая переменная не была установлена в URL. Пример: Вы запрашиваете страницу test.php
, в том файле это пытается считать значение $_GET['message']
. Что происходит в этом случае? дозируйте значение, просто возвращаются как ''
?
Делает это означает, что, если я всегда ожидаю, что значение будет введено, и не готово принять значение, '' как который я могу просто сделать что-то
$foo = $_GET['bar'];
if($foo == ''){
// Handle my 'error'
}
else
{
// $foo should now have a value that I can work with
}
Следует иметь в виду, что я знаю, что мог использовать isset($_GET['bar'])
Но я только хочу знать, установлено ли это, я не забочусь, ли это или нет, я просто забочусь, имеет ли это значение, которое является больше, чем просто пустая строка.
Если вам все равно, установлено ли значение на самом деле, вы можете использовать это:
if (empty($_GET['bar']))
// value is null, false, 0, '0' or an empty string (including whitespace).
Если я правильно понимаю, это:
$foo = $_GET['bar'];
if ((!isset($foo)) || $foo == '') {
//GET veriable not set, error
}
else {
// GET veriable set, code here.
}
Если вы попытаетесь обратиться к несуществующему элементу массива, результатом будет null
.
$foo = $_GET['bar']; //$foo is now null
Стоит отметить, что если вы используете слабый оператор сравнения ==
, а не строгое сравнение ===
, то '''
будет рассматриваться как null.
Недостатком приведенного выше кода является то, что он будет генерировать уведомление при обращении к массиву с несуществующим индексом, что немного некрасиво.
Следовательно, вы должны проверить, установлено ли значение, прежде чем присваивать содержащееся в нем значение переменной.
if ( !isset($_GET['bar']) ){
//handle error or assign default value to $foo
}else{
$foo = $_GET['bar'];
}
Если вы хотите иметь значение по умолчанию и заменять его только в том случае, если существует значение $_GET, вы можете использовать условный оператор (прокрутите вниз до "Тернарный оператор")
$foo = isset($_GET['bar']) ? $_GET['bar'] : 'default value';