В чем разница между 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
0Share on Google+
Google+
0Tweet about this on Twitter
Twitter

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

Ваш e-mail не будет опубликован.

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

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