KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > PHP empty() isset() is_null() if()

PHP empty() isset() is_null() if()

PHPのempty() isset() is_null() if文の評価について

変数サンプル

PHP
  1.  <?php
  2.  $a = NULL;
  3.  $b = "";
  4.  $c = 0;
  5.  $d = "0";
  6.  $e = 1;
  7.  $f = "1";
  8.  $g = array();
  9.  $h = true;
  10.  $i = false;
  11.  
  12.  class j {};
  13.  $j = new j();
  14.  $k;
  15.  $l = "null";
  16.  
  17.  class m {var $a;};
  18.  $m = new m();
  19.  ?>

テストコード

PHP
  1.  <?php
  2.  echo "<h5>is_null()</h5>";
  3.  echo (is_null($a) ? "NULL => true" : "NULL => false") . "<br />";
  4.  echo (is_null($b) ? "'' => true" : "'' => false") . "<br />";
  5.  echo (is_null($c) ? "0 => true" : "0 => false") . "<br />";
  6.  echo (is_null($d) ? "'0' => true" : "'0' => false") . "<br />";
  7.  echo (is_null($e) ? "1 => true" : "1 => false") . "<br />";
  8.  echo (is_null($f) ? "'1' => true" : "'1' => false") . "<br />";
  9.  echo (is_null($g) ? "array() => true" : "array() => false") . "<br />";
  10.  echo (is_null($h) ? "true => true" : "true => false") . "<br />";
  11.  echo (is_null($i) ? "false => true" : "false => false") . "<br />";
  12.  echo (is_null($j) ? "object => true" : "object => false") . "<br />";
  13.  echo (is_null($k) ? "var => true" : "var => false") . "<br />";
  14.  echo (is_null($l) ? "Str null=> true" : "var => false") . "<br />";
  15.  
  16.  echo "<hr />";
  17.  
  18.  echo "<h5>empty()</h5>";
  19.  echo (empty($a) ? "NULL => true" : "NULL => false") . "<br />";
  20.  echo (empty($b) ? "'' => true" : "'' => false") . "<br />";
  21.  echo (empty($c) ? "0 => true" : "0 => false") . "<br />";
  22.  echo (empty($d) ? "'0' => true" : "'0' => false") . "<br />";
  23.  echo (empty($e) ? "1 => true" : "1 => false") . "<br />";
  24.  echo (empty($f) ? "'1' => true" : "'1' => false") . "<br />";
  25.  echo (empty($g) ? "array() => true" : "array() => false") . "<br />";
  26.  echo (empty($h) ? "true => true" : "true => false") . "<br />";
  27.  echo (empty($i) ? "false => true" : "false => false") . "<br />";
  28.  echo (empty($j) ? "object => true" : "object => false") . "<br />";
  29.  echo (empty($k) ? "var => true" : "var => false") . "<br />";
  30.  echo (empty($l) ? "Str null=> true" : "var => false") . "<br />";
  31.  echo (empty($m) ? "object2 => true" : "var => false") . "<br />";
  32.  
  33.  echo "<hr />";
  34.  
  35.  echo "<h5>isset()</h5>";
  36.  echo (isset($a) ? "NULL => true" : "NULL => false") . "<br />";
  37.  echo (isset($b) ? "'' => true" : "'' => false") . "<br />";
  38.  echo (isset($c) ? "0 => true" : "0 => false") . "<br />";
  39.  echo (isset($d) ? "'0' => true" : "'0' => false") . "<br />";
  40.  echo (isset($e) ? "1 => true" : "1 => false") . "<br />";
  41.  echo (isset($f) ? "'1' => true" : "'1' => false") . "<br />";
  42.  echo (isset($g) ? "array() => true" : "array() => false") . "<br />";
  43.  echo (isset($h) ? "true => true" : "true => false") . "<br />";
  44.  echo (isset($i) ? "false => true" : "false => false") . "<br />";
  45.  echo (isset($j) ? "object => true" : "object => false") . "<br />";
  46.  echo (isset($k) ? "var => true" : "var => false") . "<br />";
  47.  echo (isset($l) ? "Str null=> true" : "var => false") . "<br />";
  48.  ?>

実行結果

is_null()
NULL => true
'' => false
0 => false
'0' => false
1 => false
'1' => false
array() => false
true => false
false => false
object => false
var => true
Str null=> false

empty()
NULL => true
'' => true
0 => true
'0' => true
1 => false
'1' => false
array() => true
true => false
false => true
object => false
var => true
Str null=> false
object2 => false

isset()
NULL => false
'' => true
0 => true
'0' => true
1 => true
'1' => true
array() => true
true => true
false => true
object => true
var => false
Str null=> true

emptyはPHP4と5で動作が変わってるので注意。

null と 空文字、値がない場合falseにしたいとき。

サンプルコード

PHP
  1.  <?php
  2.  function notNull($key, $var = null) {
  3.   if (!is_null($var) && $var !== '') {
  4.   echo "$key => true" . "<br />";
  5.   } else {
  6.   echo "$key => false" . "<br />";
  7.   }
  8.  }
  9.  
  10.  echo "<h5>notNull()</h5>";
  11.  notNull("NULL", $a);
  12.  notNull("''", $b);
  13.  notNull("0", $c);
  14.  notNull("'0'", $d);
  15.  notNull("1", $e);
  16.  notNull("'1'", $f);
  17.  notNull("array()", $g);
  18.  notNull("true", $h);
  19.  notNull("false", $i);
  20.  notNull("object", $j);
  21.  notNull("var", $k);
  22.  notNull("Str null", $l);
  23.  notNull("no Arg");
  24.  ?>

実行結果

notNull()
NULL => false
'' => false
0 => true
'0' => true
1 => true
'1' => true
array() => true
true => true
false => true
object => true
var => false
Str null => true
no Arg => false

if文の評価も見ておく

サンプルコード

PHP
  1.  <?php
  2.  echo "<h5>funcIf()</h5>";
  3.  
  4.  function funcIf($key, $var = null) {
  5.   if ($var) {
  6.   echo "$key => true" . "<br />";
  7.   } else {
  8.   echo "$key => false" . "<br />";
  9.   }
  10.  }
  11.  
  12.  funcIf("NULL", $a);
  13.  funcIf("''", $b);
  14.  funcIf("0", $c);
  15.  funcIf("'0'", $d);
  16.  funcIf("1", $e);
  17.  funcIf("'1'", $f);
  18.  funcIf("array()", $g);
  19.  funcIf("true", $h);
  20.  funcIf("false", $i);
  21.  funcIf("object", $j);
  22.  funcIf("var", $k);
  23.  funcIf("Str null", $l);
  24.  funcIf("no Arg");
  25.  ?>

実行結果

funcIf()
NULL => false
'' => false
0 => false
'0' => false
1 => true
'1' => true
array() => false
true => true
false => false
object => true
var => false
Str null => true
no Arg => false
プログラミングPHP 第2版
作者:Peter MacIntyre | 価格:¥ 3,990

トラックバック(0)

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。