>  기사  >  백엔드 개발  >  PHP 문자열의 길이를 결정하는 더 효율적인 방법

PHP 문자열의 길이를 결정하는 더 효율적인 방법

怪我咯
怪我咯원래의
2017-07-04 11:51:182014검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.