我的代码:
$disabled = $this->access->get_access('disable_header');
$emptyString = '';
var_dump($emptyString);
var_dump($disabled[0]);
if($disabled[0] == '') die('should be here');
if($disabled[0] == ' ') die('should be here');
die('stop');
结果是:
string(0) "" string(1) "" stop
我所有的条件都失败了,我不知道为什么..
但如果我使$ emptyString条件:
if($emptyString == '') die('should be here');
它给我结果:
should be here
如果你看到$ dislabled [0]和$ emptyString都有相同的空字符串, 但是长度不一样, 如果我将$ emptyString长度设为1,那么:
$disabled = $this->access->get_access('disable_header');
$emptyString = ' ';
var_dump($emptyString);
var_dump($disabled[0]);
if($disabled[0] == '') die('should be here');
if($disabled[0] == ' ') die('should be here');
die('stop');
成为:
string(1) " " string(1) "" stop
我仍未能比较$ disable [0]
我错过了什么?
====如何解决===
首先我尝试
mb_detect_encoding($disabled[0]);
然后给我结果
ASCII
然后我尝试:
var_dump(hexdec($disabled[0]))
然后给我结果:
int(9)
我转到ascii表,9 = TAB键
然后现在我有条件:
if(strcmp($disabled[0],'')) die('should be here');
tadaaa ..它显示:
should be here
我认为strcmp可以适用于所有输入,制表符和空格键值。 我的意见有什么错误吗?
答案 0 :(得分:1)
我认为
if(empty($disabled[0])) die('should be here');
是使用PHP检查变量是否为空的更好方法。
""
或" "
适用于JavaScript。