В чем разница между isset, empty, is_null и ??

Методы isset, empty и is_null, в общем, интуитивно понятны. isset проверяет на существование, empty на «пустое» значение, а is_null, как это понятно из названия, проверяет значение на null, но во-первых, эти функции отчасти пересекаются в функционале, а во-вторых, их результата не всегда интуитивно понятен. В PHP 7.0 появился еще и оператор ??, который проверяет на существование и null одновременно. Здесь я составил шпаргалку по их использованию (наиболее неочевидные вещи выделены жирным):

Значение$val isset($val) empty($val) is_null($val) $val=$val??’default’
0, false, array(), «0», «», 0.0 true true false исходное значение
null false true true ‘default’
var $val; — переменная объявлена, но не проинициализирована false true true ‘default’
1, true, «a», » » (пробел), 1.0, «\ 0” (байтовый Null) true false false исходное значение

 

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.