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