#PHP empty isset is_null の違い

!!($var)isset($var)empty($var)is_null($var)
$var =1truetruefalsefalse
$var ="0"falsetruetruefalse
$var =0falsetruetruefalse
$var =""falsetruetruefalse
$var =NULLfalsefalsetruetrue
$var =array()falsetruetruefalse
$var =array(1)truetruefalsefalse
$var =(object)[]truetruefalsefalse
$var =(object)[1]truetruefalsefalse
$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 は数値を文字列に変換してから比較

比較PHP7PHP8
0 == "0"truetrue
0 == "0.0"truetrue
42 == "42"truetrue
0 == "foo"truefalse
0 == ""truefalse
42 == "42foo"truefalse
"0" == "0"truetrue
"0" == "0.0"truetrue
"0" == "foo"falsefalse
"0" == ""falsefalse
"42" == "42"truetrue
"42" == "42foo"falsefalse

#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 が存在し、かつその値が0falseでなければ、false を返します。

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

empty()と isset()の違い

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

#is_null

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

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

2020-12-10
  • php

関連記事

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