配列のキーの有無のチェック
<?php
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);
array_key_exists("blank_str", $arr);
array_key_exists("no", $arr);
array_key_exists("zero", $arr);
array_key_exists("bool_true", $arr);
array_key_exists("bool_false", $arr);
array_key_exists("null", $arr);
array_key_exists("no_key", $arr);
isset
<?php
isset($arr["str"]);
isset($arr["blank_str"]);
isset($arr["no"]);
isset($arr["zero"]);
isset($arr["bool_true"]);
isset($arr["bool_false"]);
isset($arr["null"]);
isset($arr["no_key"]);
オブジェクトのプロパティの有無のチェック
<?php
property_exists( $object, 'property_name' );
property_exists
この関数は、与えられたプロパティ property が 指定されたクラスに存在するかどうかを確認します。
注意:
isset()
とは対照的に、 プロパティの値が NULL の場合でも property_exists()
は TRUE を返します。
プロパティの値が無くても、プロパティが存在していれば true
になる
変数が何の型なのか調べる
<?php
gettype( $var );
gettype
PHP 変数 var の型を返します。 型のチェックには、この関数ではなく is_* 関数を使います。
[参考]