strtok
,它优于其他功能,例如在必须拆分字符串时爆炸,因为它一次只返回一个片段,而每次后续调用都返回下一个片段。
但是在这里,用第二种方法代替strtok
(第一种方法)更好吗?我保留第二个优先级,因为它的编码较少,但不了解大字符串的性能和内存消耗。哪一个最好?
$stdt='4-50';
使用strtok的第一种方式
$stdt_cut = strtok( $stdt, '-' );
$stdt_final = strtok( '' );
echo $stdt_final;
//output is 50
使用substr和strstr的第二种方式
echo substr(strstr($stdt, '-'), 1)
//output is 50
答案 0 :(得分:1)
strstr的原型是:
string strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] )
和功能
从第一个(包括第一个)开始返回干草堆字符串的一部分 到干草堆尽头的针的发生。
因此基于此:$stdt='4-50';
在这一步:strstr($stdt, '-');
您已经有“ -50”; 因此您可以有效地使用:
substr(strstr($stdt, '-'), 1);
或
ltrim(strstr($stdt, '-'),'-');
但是在您看来,真正快速的方法可能是因为strpos被声明比strstr消耗更少,速度更快,并且还因为您使用了所有相同的substr:
substr($stdt,strpos($stdt,'-')+1)