php中strtok(",")的不解

Python/PHP/Perl 开发与设计
回复
sightxp
帖子: 13
注册时间: 2010-05-11 16:16
送出感谢: 0
接收感谢: 0

php中strtok(",")的不解

#1

帖子 sightxp » 2010-06-05 17:53

在Linux下学习Php,碰到这样的一个函数strtok(string,separator),按照书上的讲解,我的理解如下:

string为要分割的字符串,separator为分割标志,

那好:我们写了这样的一段代码:

代码: 全选

<?php
        $string = "abc,efg,agi,332,phper";
        $token = strtok($string,",");

        while($token !== false){
                echo("$token<br>");
               $token = strtok(",");
        }
?>
它能正常执行,显示也对的,但是有一个地方很不理解,为什么一定要这句" $token = strtok(","); "才能正常执行?这句是什么意思,上面的那句不是已经

告诉它怎么分割了么?我试过把这句" $token = strtok(","); "去掉,那么将变成一个死循环.永远不会停止!

请各位指点下小弟,如果能给出strtok()函数的实现方法更好!谢谢!
头像
hikui
帖子: 460
注册时间: 2007-07-06 11:56
来自: 上海
送出感谢: 0
接收感谢: 0
联系:

Re: php中strtok(",")的不解

#2

帖子 hikui » 2010-06-08 14:05

strtok第一次调用的时候的参数是(string,separator),以后每次调用,只要调用strtok(separator)就行了。应该是每调用一次,就往后找一次。规定是这样用的。详见manual
头像
hikui
帖子: 460
注册时间: 2007-07-06 11:56
来自: 上海
送出感谢: 0
接收感谢: 0
联系:

Re: php中strtok(",")的不解

#3

帖子 hikui » 2010-06-08 14:08

你去掉$token = strtok(","); 之后,$token就永远是第一个逗号前面的字符串,永远不会往后去查,一直有效,当然死循环了。
回复

回到 “Python/Php/Perl”