6

我的代码:

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

4

1 回答 1

1

我认为

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

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

""" "用于 JavaScript。

于 2013-05-09T04:02:55.067 回答