Пусть у нас есть следующая переменная:
<?php
$test = null;
?>
Давайте напишем условие, выполняющее проверку
на null
:
<?php
$test = null;
if ($test === null) {
echo '+';
} else {
echo '-';
}
?>
Более удобно такую проверку можно выполнить
с помощью специальной команды isset
:
<?php
$test = null;
if (isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Подавление ворнинга
Пусть переменная $test
вообще не определена.
Как вы уже знаете, значение такой переменной
будет равно null
. При этом попытка
обратиться к этой переменной приведет к появлению
ворнинга:
<?php
var_dump($test); // выведет null и ворнинг
?>
Ворнинг также будет показан при попытке проверить
переменную на null
:
<?php
if ($test === null) {
echo '+';
} else {
echo '-';
}
?>
А вот проверка через команду isset
не приведет к появлению ворнинга - он будет
автоматически подавлен:
<?php
if (isset($test)) {
echo $test;
} else {
echo 'variable does not exist';
}
?>
Инвертирование высказывания
Можно выполнить обратную проверку, на то,
что переменная не определена. Для этого выполним
инвертирование isset
с помощью логического
НЕ
:
<?php
$test = null;
if (!isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Элементы массивов
С помощью isset
можно проверить существование
элемента массива:
<?php
$arr = ['a', 'b', 'c'];
if (isset($arr['5'])) {
echo $arr['5'];
} else {
echo 'element does not exist';
}
?>
Можно также проверить элемент несуществующего массива:
<?php
if (isset($arr['5'])) {
echo $arr['5'];
} else {
echo 'array or element does not exist';
}
?>
Практические задачи
Не запуская код, определите, что выведется на экран:
<?php
$test = 0;
if (isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = null;
if (!isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = null;
if (isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
if (!isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = '';
if (isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
if (!isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = false;
if (isset($test)) {
echo '+';
} else {
echo '-';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$arr = [1, 2, 3, 4, 5];
if (isset($arr[])) {
echo '+';
} else {
echo '-';
}
?>