0
0

PHP(7.1.33) 学習 備忘録 - isset, is_null, empty

Posted at

とある案件でPHPを触れて、学んだことを書いておく。

変数チェック

変数を宣言・定義しているか、NULLかなどをTRUE,FALSEで返してくれる関数を調べたのでまとめておきます。

PHPの前提として、NULLと変数宣言をしただけのものは基本的に同じです。

$defNull = NULL;
$defOnly;

is_null

is_intis_stringなど型ごとにチェックする関数があります。

  • 変数が宣言されていない
  • NULLで定義されている

ならば、Trueが返ってきます。

ただし、未宣言の場合はおそらくNoticeが出てくると思います。

isset

  • 変数が宣言されている
  • NULLで定義されていない

ならば、Trueが返ってきます。
数値0か空(空文字列、空配列)でも定義しておけばTrueになります。

empty

  • 数値0
  • 変数が空(空文字列、空配列)
  • NULL
  • 文字列"0"
  • 未定義

ならば、Trueが返ってきます。
文字列でも0だけだと数値同様Trueが返ってくることに注意が必要です。
Trueの条件が多いため、覚えやすそうなFalseになる条件をまとめておきます。

  • 数値0以外
  • 文字列""と"0"以外
  • 配列の空以外

おまけ 変数をbooleanにcastする

(bool)$var

<?php
var_dump((bool)1); // bool(true)
var_dump((bool)0); // bool(false)
var_dump((bool)""); // bool(false)
var_dump((bool)"0"); // bool(false)
var_dump((bool)"ABC"); // bool(true)
?>

boolval($var)

<?php
var_dump(boolval(1)); // bool(true)
var_dump(boolval(0)); // bool(false)
var_dump(boolval("")); // bool(false)
var_dump(boolval("0")); // bool(false)
var_dump(boolval("ABC")); // bool(true)

メモ

ブラウザでの実行環境

コードを試したい場合は使ってください。バージョンを指定できるのでバージョンによって動かないものを確認できます。

3v4l(v7.1.33)

0
0
1

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
0
0