如何查找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的幻想。 –