我最近遇到了一个奇怪的问题 我有以下代码来在php中标记字符串:
$ token = strtok($ string,“#”);
while ($token != false)
{
echo $token;
$token = strtok("#");
}
我遇到的一个简单问题是我正在解析包含许多数字的文件,所以在这种情况下,0将被读作false。因此,解析无法完成。
我该怎么办?
答案 0 :(得分:7)
您应该使用!==
operator,将$token
与false
进行比较:
while ($token !== false)
如果您阅读strtok()
的手册页,您会看到以下注释(引用):
此函数可能返回布尔值
FALSE
,但也可能会返回 非布尔值,其值为FALSE
,例如0
或""
。
请阅读本节 Booleans了解更多信息。 使用the===
operator 测试这个的返回值 功能
使用!==
代替!=
将确保没有完成类型转换。
例如,0 == false
;但是0 !== false
。