配列のキーの有無のチェック
<?php // return: bool array_key_exists( 'key_name', $array );
array_key_exists
指定した key が配列に設定されている場合、 array_key_exists() は TRUE を返します。 key は配列添字として使用できる全ての値を使用可能です。
注意:
array_key_exists()
は、最初のレベルのキーだけを捜します。 多次元配列のネストされたキーは、この関数では見つけられません。
isset()との違い
isset()
は未定義またはNULLの時 false
になるので、配列の値がnullの時、配列にキーが存在してもfalse
になってしまう。
ex
<?php $arr = [ 'str' => 'text', 'blank_str' => '', 'no' => 1, 'zero' => 0, 'bool_true' => true, 'bool_false' => false, 'null' => null, ];
👇 array_key_exists
<?php array_key_exists("str", $arr); // => true array_key_exists("blank_str", $arr); // => true array_key_exists("no", $arr); // => true array_key_exists("zero", $arr); // => true array_key_exists("bool_true", $arr); // => true array_key_exists("bool_false", $arr); // => true array_key_exists("null", $arr); // => true array_key_exists("no_key", $arr); // => false ... 存在しないキーとの時だけfalse
isset
<?php isset($arr["str"]); // => true isset($arr["blank_str"]); // => true isset($arr["no"]); // => true isset($arr["zero"]); // => true isset($arr["bool_true"]); // => true isset($arr["bool_false"]); // => true isset($arr["null"]); // => false ... 値がnullだとキーが存在してもfalse isset($arr["no_key"]); // => false
オブジェクトのプロパティの有無のチェック
<?php // return: bool property_exists( $object, 'property_name' );
property_exists
この関数は、与えられたプロパティ property が 指定されたクラスに存在するかどうかを確認します。
注意:
isset()
とは対照的に、 プロパティの値が NULL の場合でもproperty_exists()
は TRUE を返します。
プロパティの値が無くても、プロパティが存在していれば true
になる
変数が何の型なのか調べる
<?php // return: string gettype( $var );
[参考]
- PHP: array_key_exists - Manual
- PHP: array_key_exists - Manual
- PHP: isset - Manual
- PHP: isset と array_key_exists による配列キー存在チェックの違い | Thought is free
- PHP: gettype - Manual

- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る