LoginSignup
8
6

More than 5 years have passed since last update.

PHPのisset,empty,is_nullの引用あれこれ

Last updated at Posted at 2015-03-24

比較表

if($var) isset empty is_null
$var=1 TRUE TRUE FALSE FALSE
$var=""; FALSE TRUE TRUE FALSE
$var="0"; FALSE TRUE TRUE FALSE
$var=0; FALSE TRUE TRUE FALSE
$var=NULL; FALSE FALSE TRUE TRUE
$var FALSE FALSE TRUE TRUE
$var=array() FALSE TRUE TRUE FALSE
$var=array(1) TRUE TRUE FALSE FALSE

引用元
http://d.hatena.ne.jp/sngmr/20080209/1202520832
マニュアル:型の比較表
http://php.net/manual/ja/types.comparisons.php

isset, empty, is_null の動作まとめ

複雑な表を書き並べている記事が多いですが、実際は
null であれば
null でなければ
空値であれば
空値でなければ
の4種類の内容しか取り扱っていないものがほとんどであり、覚えるのが難しいなどと悩む必要はありません。

引用 mpywさんThaxデス
http://qiita.com/mpyw/items/51bf42fe1ad8a7e535aa

null値とunsetの原理的理解

PHPは、シンボルテーブルという変数名と値を結びつける、管理表を内部に持っている。

変数名 格納場所
a #0001番地

のような。※俺はテーブルかくな…と?

$a = null;

シンボルテーブル a → #0001番地 → nullという値

となる。

unset ( $a );

シンボルテーブル に a がない!

という状態になる。

$a='';
は、空文字文字の代入なので、PHPとしては当然に値を持っているものである。

シンボルテーブル a → #0001番地 → \0 という値

なお、null 値とは、 null 型 は、ある変数が値を持たないことを表す値、という若干矛盾する表現でしか表現できない特殊な値&型であるが、私見では、

null という値を持つ特殊な定数(変数)

と理解するのがよろしいかと思う。

引用元
http://www.cpa-lab.com/tech/097
参照:変数の代入は、値のコピーにあらず
http://www.cpa-lab.com/tech/030

8
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6