Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the updraftplus domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/w16609.ws.domainking.cloud/mudabukuro.miracle-dance.com/wp-includes/functions.php on line 6114
NULL合体演算子・NULL判定関数の値 | 無駄ぶくろ~無駄なモノほど面白い
Deprecated:関数 print_emoji_styles は、バージョン 6.4.0 から非推奨になりました ! 代わりに wp_enqueue_emoji_styles を使用してください。 in /var/www/vhosts/w16609.ws.domainking.cloud/mudabukuro.miracle-dance.com/wp-includes/functions.php on line 6114

NULL合体演算子・NULL判定関数の値

perl を使ってたころは「未定義」に関してあまり意識しなかったのですが、
php では、null と未定義の違いがチェックされ、wordpress でdebug=true にすると、警告エラーがでてくるので
確認の意味で....

とりあえず、if( $ver )で、未定義の警告エラーが出るときは、
if( isset( $var ) ) の代わりに、if( $var??null ) とかやっても、
警告エラーの回避が出来そうですね。

NULL合体演算子

$a=null; var_dump($a??"***")

string(3) "***"

var_dump($b??"***")

string(3) "***"

$c=""; var_dump($c??"***")

string(0) ""

$d=0; var_dump($d??"***")

int(0)

$e=[]; var_dump($e??"***")

array(0) { }

$f["x"]=5; var_dump($f["y"]??"***")

string(3) "***"

$f[1]=6; var_dump($f[$x??1])

int(6)

$h=false; var_dump($h??"***")

bool(false)

var_dump($i??$j??$k??"***")

string(3) "***"

$k=8; var_dump($i??$j??$k??"***")

int(8)

$j=7; $k=8; var_dump($i??$j??$k??"***")

int(7)

var_dump( 1, "1", null, false, true )

int(1) string(1) "1" NULL bool(false) bool(true)

$array = explode ( "&", "aaa=111&bbb=&ccc=333&ggg&ddd=444&" ); foreach( $array as $str ){ $xxx = explode( "=", $str ); $hash[ $xxx[0]] = $xxx[1]??null; // ※1 } var_dump( $hash );

※1 gggの値が未定義になるのを、?? で NULLに置き換え
bbb= は、なにもしなくても、空白になります
array(6) { ["aaa"]=> string(3) "111" ["bbb"]=> string(0) "" ["ccc"]=> string(3) "333" ["ggg"]=> NULL ["ddd"]=> string(3) "444" [""]=> NULL }
※注記:以下のように list()で分割すると 未定義エラーになる。
foreach( $array as $str ){
 	list( $key, $value ) = explode( \'=\', $str );
	$hash[ $key ] = $value;
};

$hash["zzz"] が未定義の時・・・ if( $hash["zzz"] )→未定義なのでエラー; if( $hash["zzz"] ??"" )→空白変換で「偽」; if( $hash["zzz"] ??null )→NULL変換で「偽」

string(0) "" NULL

NULL判定関数

null判定表
$hoge isset($hoge) empty($hoge) is_null($hoge) $hoge == null $hoge === null
宣言なし bool(false) bool(true) bool(true) bool(true) bool(true)
初期値なし bool(false) bool(true) bool(true) bool(true) bool(true)
0 bool(true) bool(true) bool(false) bool(true) bool(false)
"" bool(true) bool(true) bool(false) bool(true) bool(false)
false bool(true) bool(true) bool(false) bool(true) bool(false)
null bool(false) bool(true) bool(true) bool(true) bool(true)
"0" bool(true) bool(true) bool(false) bool(false) bool(false)
array() bool(true) bool(true) bool(false) bool(true) bool(false)
array(5) bool(true) bool(false) bool(false) bool(false) bool(false)


※このページはテスト用です。URLを変更する可能性が高いので要注意!