PHPのisset()関数は配列の要素の値がnullだったらfalseを返すのでarray_key_exists()を使ったほうがいいかもしれない

PHP IT

例えば、下記のコードの場合、

<?php
$a['test'] = null;

var_dump(isset($a['test']));

結果はfalseになる。

bool(false)

配列の要素の値にnullが入る可能性があるときは、array_key_exists()を使ったほうがいいかもしれない🤔

<?php
$a['test'] = null;

// var_dump(isset($a['test']));
var_dump(array_key_exists('test', $a));
bool(true)

ってマニュアルに書いてあるやん😅

PHP: isset - Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i...

$a = array (‘test’ => 1, ‘hello’ => NULL, ‘pie’ => array(‘a’ => ‘apple’));

var_dump(isset($a[‘test’])); // TRUE
var_dump(isset($a[‘foo’])); // FALSE
var_dump(isset($a[‘hello’])); // FALSE

// キー ‘hello’ は NULL と等しいのでセットされていないと見なされる。
// もし NULL なキー値に対してチェックを行いたい場合、次を試してみること:
var_dump(array_key_exists(‘hello’, $a)); // TRUE

https://www.php.net/manual/ja/function.isset.php
この記事を書いた人

余分なこだわりは捨てる。それがぼくのスタイル。

PHPでWebアプリを作り、小さな花の写真を撮ってよろこんでいる人。元Webエンジニア。プログラミング講師。余分なこだわりを捨てて生きやすくなりたいと思いつつも、なかなかこだわりを捨てきれない頑固者。まろと呼んでください。

さかのうえの まろをフォローする
IT
シェアする