不使用函数检测字符串的结束


Detecting end of string without using functions

如何找出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