PHP에서 문자열의 길이를 결정해야 할 때 가장 먼저 생각하는 것은 strlen()함수입니다. 예, strlen()은 문자열의 길이를 반환하므로 아무 것도 없습니다. 이렇게 사용하면 문제가 발생합니다. 그러나 PHP 프로그램 최적화의 관점에서 볼 때 문자열 길이를 결정하기 위해 strlen()을 사용하는 것이 아마도 문자열 길이를 결정하는 가장 좋은 방법일 것입니다.
숙련된 프로그래머는 PHP에서 문자열 길이를 결정하기 위해 isset()을 사용하는 것이 strlen()보다 빠르면 더 빠르고 효율적으로 수행됩니다.
즉:
코드는 다음과 같습니다.
$str = ‘aaaaaa'; if(strlen($str) > 6) VS if(!isset($str{6})
예제를 사용하여 간단한 테스트를 마친 후 상황은 기본적으로 isset()이 strlen()보다 거의 3배 더 효율적입니다.
예:
코드는 다음과 같습니다.
<?php //使用strlen方式 $arr = "123456"; $sTime = microtime (1); if(strlen($arr) > 6){ // echo 1; } echo microtime(1) - $sTime;
출력: 0.00035595893859863
코드는 다음과 같습니다.
<?php //使用isset($arr{})方式 $arr = "123456"; $sTime = microtime(1); if(!isset($arr{6})){ // echo "1\r\n"; } echo microtime(1) - $sTime;
출력: 0. 0001909732818 6035
isset() 왜 더 빠른가요? strlen()
strlen보다 () 함수는 계산을 수행하지 않고 zval 구조(PHP 변수를 저장하는 데 사용되는 C의 내장 데이터 구조)에 저장된 알려진 문자열 길이를 반환하기 때문에 매우 빠르게 실행됩니다. 다만, strlen()은 함수이기 때문에 함수 호출이 소문자 등 여러 단계를 거치기 때문에 다소 느릴 것입니다(주석: 소문자 함수 이름을 말하며, PHP는 함수 이름 대문자와 소문자를 구분하지 않습니다 ), 해시 검색, 호출된 함수와 함께 실행됩니다.
어떤 경우에는 isset() 트릭을 사용하면 코드 실행 속도가 빨라질 수 있습니다. isset()은 언어 구성이기 때문에 실행 시 함수 조회 및 소문자 소문자 필요가 없음을 의미합니다. 즉, 문자열 길이를 확인하는 최상위 코드에서는 실제로 많은 오버헤드를 소비하지 않습니다.
따라서 isset()을 호출하는 것이 strlen()보다 빠릅니다.
위 내용은 PHP 문자열의 길이를 결정하는 더 효율적인 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!