如何找出PHP字符串的结尾?我有一个任务:识别没有任何功能的字符串长度。我知道PHP中的所有字符串都以空字节(\0
)结尾,但我不知道最后一个符号后面的字符串元素。
例如,这不起作用:
while($a[++$length]);
如何在不使用任何功能的情况下知道字符串的长度?
答案 0 :(得分:14)
在php中,字符串不以空字节结尾。例如,$s = 'a';echo $s[1];
会产生警告(这就是您不应该使用$a[$length] == ""
进行测试的原因)。此外,php字符串可以包含空字节 - 它们实际上是字节数组。
但是,您可以使用语言构造isset
来测试读取$a[$length]
的值是否会产生警告:
$a = "a\0b\0c";
for ($length = 0;isset($a[$length]);$length++) ;
echo $length; // 5
答案 1 :(得分:4)
$string = 'hello';
$length = 0;
while (isset($string[$length])) {
$length++;
}
echo $length; //5