PHP strtok()如果我理解这一点,请告诉我

时间:2014-11-30 07:20:59

标签: php string strtok

这是代码:

<?php
    $string = 'Hey there buddy';
    $token = strtok($string, ' ');
    while($token !== false)
    {
        echo $token."<br/>";
        $token = strtok(' ');
    }
?>

我只是想知道我是否理解这一点。这是我对strtok()的看法。要使用strtok(),首先,您必须使用输入字符串(在本例中为$ string)和分隔符(在这种情况下为&#39;&#39;)将其设置为变量(在本例中为$ token)。然后你必须在while循环中再次使用它,但这次只指定一个分隔符而不是输入字符串,因为它在我们第一次使用它时已经连接到变量$ string。我是对的吗?

1 个答案:

答案 0 :(得分:0)

是的,strtok保留了来自第一个拥有$string的人口的内部缓冲区。它随后返回部分内容;无论何时你只传递一个新角色来分割。

您可以使用do/while构造缩短循环,顺便说一下:

do {
    echo $token."<br/>";
}
while (is_str($token = strtok(' ')));

然而,这也是strtok的缺点。因为它适用于全局内部字符串缓冲区,所以你只能使用一个这样的循环 - 它不适合并行划分子串或者在另一个缓冲区旁边工作。

虽然当你只使用一个分隔符进行拆分时,你也可以使用PHP最常用的函数:explode