php中的字符串标记生成器

时间:2011-04-06 11:33:10

标签: php tokenize

我最近遇到了一个奇怪的问题 我有以下代码来在php中标记字符串:

$ token = strtok($ string,“#”);

while ($token != false)
{
    echo $token;
    $token = strtok("#");

}

我遇到的一个简单问题是我正在解析包含许多数字的文件,所以在这种情况下,0将被读作false。因此,解析无法完成。

我该怎么办?

1 个答案:

答案 0 :(得分:7)

您应该使用!== operator,将$tokenfalse进行比较:

while ($token !== false)


如果您阅读strtok()的手册页,您会看到以下注释(引用)

  

此函数可能返回布尔值   FALSE,但也可能会返回   非布尔值,其值为   FALSE,例如0""。   
请阅读本节   Booleans了解更多信息。   使用the === operator   测试这个的返回值   功能


使用!==代替!=将确保没有完成类型转换。

例如,0 == false;但是0 !== false