PHP

[PHPの謎]issetとemptyの違いをPHPエンジニアが徹底解説

最近では空前のプログラミングブールが到来して、色々な人がプログラミングの勉強を始めています。プログラミングの勉強でisset関数やempty関数で行き詰る人も多いと思います。そこで今回はPHPのissetとemptyに関しての解説をこの記事でしたいと思います。

issetとは

変数がセットされていてNULLでないことを調べます。0はNULLではありません。正確には値(データ)がセットされていて、かつNULLでない時にTRUEを返します。NULLは変数が値(データ)を持っていないことを表す特別な値(データ)です。

issetの書き方

if (isset($value)){
    echo 'NULLではないです';//True
}else{
    echo 'NULLです';//False
}

emptyとは

変数が空であるかどうかを調べます。ポイントは変数に文字列の'0'あるいはからの場合はTrueを、それ以外はFalseを返します。

emptyの書き方

if (empty($value)){
    echo '空です';//True
}else{
    echo '空ではないです';//False
}

issetとemptyの違い

isset()は変数にしか使えないのに対して

empty()は関数の戻り値などにも使えるようです。

また、if(変数)と!empty()では結果が同じように感じますがif(変数)では変数が定義されていなければエラーになってしまうので、変数の定義がしっかりしている場合しか使えません。

issetとemptyの比較

issetとemptyの比較をしてみました。

引用:https://www.php.net/manual/ja/types.comparisons.php

empty isset
$x = "", True True
$x = null; True False
var $x; True False
$xが未定義 True False
$x = array(); True True
$x array('a','b'); False True
$x = false; True True
$x = true; False True
$x = 1; False True
$x = 42; False True
$x = 0; True True
$x = -1; False True
$x = "1"; False True
$x = "0"; True True
$x = "-1"; False True
$x = "php"; False True
$x = "true"; False True
$x = "false"; False True

こちらが簡単な比較になります。

[初心者向け]PHPの勉強におすすめの本

今回はPHPの勉強でわからないことがあった場合におすすめの本を紹介します。

いきなりはじめるPHP


確かな力が身に付くPHP「超」入門



こちらも分かりやすい良書です。この本から中級レベルの本、フレームワークと発展させないといけないがこの本の次に読むべき本も下に紹介しています。サンプルを動かして説明があるので初心者の頃の私にはピッタリでした。
この本も実際に読んでレビュー記事を書いたので気になる方はこちらの記事をお読みください。

独習PHP 第3版


少し知識のある人向けの本です。脱初心者を目指している人にはこちらの本がおすすめです。かなり詳しい内容でPHPの理解を深めることができます。さらにPHPで大事なセキュリティに関しても少し触れているので中級者には良い本だと感じます。
こちらの本も私は実際に使用しています。こちらのレビューを良ければお読みください。