issetとis_null

PHP !isset($hoge)  is_null($hoge) は、両方とも変数$hogeがnullでないことを確認できるけど、isset()は言語構造で、is_null()は関数という違いがある。

なので、isset()は以下のように使うとFatalErrorとなる。

<?php

function hoge() {
return 'hoge';
}

if(!isset(hoge())){
echo hoge();
}


実行結果

( ! ) Fatal error: Can't use function return value in write context in test.php on line 7

PHPのマニュアルisset()にも注意書きがある。

注意: これは、関数ではなく 言語構造のため、可変関数 を用いて コールすることはできません。



とりあえず、 !isset($hoge) ってかいてしまったことがあったのでメモメモ。

広告を非表示にする