PHP 문자열의 끝을 찾는 방법? 하나의 작업 : 모든 기능없이 문자열 길이를 인식. PHP의 모든 문자열이 null 바이트 (\0
)로 끝나는 것을 알고 있지만 마지막 기호 다음에 문자열의 요소를 알 수 없습니다.함수를 사용하지 않고 문자열의 끝을 감지
예를 들어,이 작동하지 않습니다
while($a[++$length]);
어떻게 문자열의 길이를 알 수있는 기능을 사용하지 않고? PHP에서
PHP 문자열의 끝을 찾는 방법? 하나의 작업 : 모든 기능없이 문자열 길이를 인식. PHP의 모든 문자열이 null 바이트 (\0
)로 끝나는 것을 알고 있지만 마지막 기호 다음에 문자열의 요소를 알 수 없습니다.함수를 사용하지 않고 문자열의 끝을 감지
예를 들어,이 작동하지 않습니다
while($a[++$length]);
어떻게 문자열의 길이를 알 수있는 기능을 사용하지 않고? PHP에서
, 문자열은 null 바이트하지 말을한다. 예를 들어, $s = 'a';echo $s[1];
은 경고 메시지를 표시합니다 (그 이유는 $a[$length] == ""
으로 테스트하면 안됩니다). 또한, PHP 문자열은 null 바이트를 포함 할 수 있습니다 - 그들은 정말로 바이트 배열입니다. 널 바이트가 구현 세부입니다
$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
그건 :
그러나
$a[$length]
의 값을 읽는 것은 경고를 생성 할 것입니다 여부를 테스트하는 언어가isset
을 구성 할 수 있습니다. 끝에 null 바이트에 액세스 할 수 있다고 생각하지 않습니다. PHP는 C가 아닙니다. 잘못된 것일 수 있습니다. 그러나 접근 방법이 효과적이라고 생각하지 않습니다. – Joe@evilone 나는 모든 정상적인 교육자가 모든 언어의 * php * 프로그램을 학생들에게 소개 할 것을 의심합니다. – phihag
@phihag 나는 당신과 동의하지만, 이상한 질문으로 판단하면서 교육자에 대해 확신 할 수는 없습니다. 그것은 단지 OP의 환상일지도 모른다. –