无法比较空字符串

时间:2013-01-19 11:28:06

标签: php

我的代码:

$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可以适用于所有输入,制表符和空格键值。 我的意见有什么错误吗?

1 个答案:

答案 0 :(得分:1)

我认为

if(empty($disabled[0])) die('should be here');

是使用PHP检查变量是否为空的更好方法。

""" "适用于JavaScript。