如何查找PHP字符串的结尾?我有一项任务:识别没有任何功能的字符串长度。我知道PHP中的所有字符串都以空字节结尾(\0
),但我无法知道最后一个符号后面的字符串元素。检测字符串的末尾而不使用函数
例如,这是不行的:
while($a[++$length]);
如何知道字符串的长度,不使用任何功能呢?
如何查找PHP字符串的结尾?我有一项任务:识别没有任何功能的字符串长度。我知道PHP中的所有字符串都以空字节结尾(\0
),但我无法知道最后一个符号后面的字符串元素。检测字符串的末尾而不使用函数
例如,这是不行的:
while($a[++$length]);
如何知道字符串的长度,不使用任何功能呢?
在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
$string = 'hello';
$length = 0;
while (isset($string[$length])) {
$length++;
}
echo $length; //5
那空字节是一个实现细节。我不认为你最后可以访问空字节。 PHP不是C.可能是错误的,但我不认为你的方法会起作用。 – Joe
@evilone我怀疑任何理智的教育者会向学生介绍所有语言的* php *编程。 – phihag
@爱哈格虽然我同意你的观点,但你不能确定教育者,由一些奇怪的问题来判断。这可能只是OP的幻想。 –