'00'に迷ってしまったのでメモ。
文字列のif($x)
とempty($x)
では'0'のみ特殊なようです。
PHP 関数による $x の比較
式 | empty() | boolean : if($x) |
---|---|---|
$x = ""; | TRUE | FALSE |
$x = "0"; | TRUE | FALSE |
$x = "00"; | FALSE | TRUE |
if ('00')
{
var_dump('true');
}
else
{
var_dump('false');
}
if (empty('00'))
{
var_dump('true');
}
else
{
var_dump('false');
}
string(4) "true"
string(5) "false"
== による緩やかな比較
TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | "" | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE |
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
"00" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE |
<?php
//Enter your code here, enjoy!
if ('00' == TRUE)
{
var_dump('"00" == TRUE', 'true');
}
else
{
var_dump('"00" == TRUE', 'false');
}
if ('00' == FALSE)
{
var_dump('"00" == FALSE', 'true');
}
else
{
var_dump('"00" == FALSE', 'false');
}
if ('00' == 1)
{
var_dump('"00" == 1', 'true');
}
else
{
var_dump('"00" == 1', 'false');
}
if ('00' == 0)
{
var_dump('"00" == 0', 'true');
}
else
{
var_dump('"00" == 0', 'false');
}
if ('00' == -1)
{
var_dump('"00" == -1', 'true');
}
else
{
var_dump('"00" == -1', 'false');
}
if ('00' == "1")
{
var_dump('"00" == "1"', 'true');
}
else
{
var_dump('"00" == "1"', 'false');
}
if ('00' == "0")
{
var_dump('"00" == "0"', 'true');
}
else
{
var_dump('"00" == "0"', 'false');
}
if ('00' == "-1")
{
var_dump('"00" == "-1"', 'true');
}
else
{
var_dump('"00" == "-1"', 'false');
}
if ('00' == NULL)
{
var_dump('"00" == NULL', 'true');
}
else
{
var_dump('"00" == NULL', 'false');
}
if ('00' == array())
{
var_dump('"00" == array()', 'true');
}
else
{
var_dump('"00" == array()', 'false');
}
if ('00' == "php")
{
var_dump('"00" == "php"', 'true');
}
else
{
var_dump('"00" == "php"', 'false');
}
if ('00' == "")
{
var_dump('"00" == ""', 'true');
}
else
{
var_dump('"00" == ""', 'false');
}
string(12) ""00" == TRUE"
string(4) "true"
string(13) ""00" == FALSE"
string(5) "false"
string(9) ""00" == 1"
string(5) "false"
string(9) ""00" == 0"
string(4) "true"
string(10) ""00" == -1"
string(5) "false"
string(11) ""00" == "1""
string(5) "false"
string(11) ""00" == "0""
string(4) "true"
string(12) ""00" == "-1""
string(5) "false"
string(12) ""00" == NULL"
string(5) "false"
string(15) ""00" == array()"
string(5) "false"
string(13) ""00" == "php""
string(5) "false"
string(10) ""00" == """
string(5) "false"