В чем разница между 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 исходное значение

 

Поделиться: Share on LinkedIn
Linkedin
Share on VK
VK
Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter

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

Ваш адрес email не будет опубликован.

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

Яндекс.Метрика