「Warning: array_key_exists()」と表示されるとき

array_key_exists関数は配列に指定インデックスが存在するか調べることができます。使用例は次のようになります。

<?php
$ar = array("t"=>"東京", "c"=>"千葉", "k"=>"神奈川");

if (array_key_exists("t", $ar)) {
    echo "キーは存在します。";
} else {
    echo "キーは存在しません。";
}
?>
実行結果
キーは存在します。

array_key_exists関数の第一パラメータはインデックス、第二パラメータは配列を指定しますが、次のような指定をすると「Warning: array_key_exists()」のようなWarningが表示されます。

<?php
$ar = array("t"=>"東京", "c"=>"千葉", "k"=>"神奈川");

if (array_key_exists(array("t"), $ar)) {
    echo "キーは存在します。";
} else {
    echo "キーは存在しません。";
}
?>

最初のパラメータは文字列または数値にする必要があるとのエラーメッセージが表示されます。

実行結果
Warning: array_key_exists(): The first argument should be either a string or an integer
<?php
$ar = "東京";

if (array_key_exists("t", $ar)) {
    echo "キーは存在します。";
} else {
    echo "キーは存在しません。";
}
?>

第二パラメータは配列に、というエラーメッセージが表示されます。

実行結果
Warning: array_key_exists() expects parameter 2 to be array, string given
<?php
$ar = NULL;

if (array_key_exists("t", $ar)) {
    echo "キーは存在します。";
} else {
    echo "キーは存在しません。";
}
?>

第二パラメータにNULLが指定されている、とのエラーメッセージが表示されます。

実行結果
Warning: array_key_exists() expects parameter 2 to be array, null given

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク