# PHP empty isset is_null の違い

!!($var) isset($var) empty($var) is_null($var)
$var = 1 true true false false
$var = "0" false true true false
$var = 0 false true true false
$var = "" false true true false
$var = NULL false false true true
$var = array() false true true false
$var = array(1) true true false false
$var = (object)[] true true false false
$var = (object)[1] true true false false
$var = 1;
var_dump(!!($var));         // true
var_dump(isset($var));      // true
var_dump(empty($var));      // false
var_dump(is_null($var));    // false

$var = [];
var_dump(!!($var));         // false
var_dump(isset($var));      // true
var_dump(empty($var));      // true
var_dump(is_null($var));    // false

$var = (object)[];
var_dump(!!($var));         // true
var_dump(isset($var));      // true
var_dump(empty($var));      // false
var_dump(is_null($var));    // false

文字列と数値を比較

php7 は文字列を数値に変換してから比較
php8 は数値を文字列に変換してから比較

比較 PHP7 PHP8
0 == "0" true true
0 == "0.0" true true
42 == "42" true true
0 == "foo" true false
0 == "" true false
42 == "42foo" true false
"0" == "0" true true
"0" == "0.0" true true
"0" == "foo" false false
"0" == "" false false
"42" == "42" true true
"42" == "42foo" false false

# isset

isset — 変数が宣言されていること、そして null とは異なることを検査する

つまりNULLではなければ、すべて true で返します。
isset 複数チェックする場合、AND として扱う





 

$a = "a";
$b = NULL;

var_dump(isset($a));        // true
var_dump(isset($a, $b));    // false

# empty

empty — 変数がであるかどうかを検査する

var が存在し、かつその値が 0 false でなければ、false を返します。

  • 変数が存在しない場合でも警告しません
  • empty()!isset($var) || $var == false と同じ

empty()と isset()の違い

empty() は isset() より値が false かどうかをチェック

# is_null

is_null — 変数が null かどうか調べる

var が 宣言なしと null の場合に true、 それ以外の場合に false を返します。

2020-12-10
  • php

関連記事

正規表現一覧 よく使う検索・置換のパターン
Apache 初期設定メモ
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
codeigniter email ライブラリでメール送信 日本語対応
php 開発におけるコーディングルール・規約
php curl 使って クリックなしで POST 送信
FlattenException deprecated
allowurlinclude の設定で ftp_connect()エラー
Lumen と Laravel 違い比較
Laravel 5.7 の MVC 使う時のメモ
PHP 8 リリース新機能と変更
解決!phpMyAdmin テーブル構造の内容が表示されない問題
Smarty HTTP URL 取得できるサーバー関数
twig 3 人気 PHP テンプレートエンジンがバージョンアップ
開発時によく使うゼロ埋めパディング作業まとめ
nuxtjs と codeigniter で jwt システム構築
HTML から PDF に変換 PHP ライブラリ mPDF の設定
PHP 7.4 にアップグレードして使えなくなる機能
php.ini 初期設定のいろいろ
爆速軽量フレームワーク codeigniter PHP 開発
Composer コマンドとオプション
Laravel Error についてのメモ