>  기사  >  백엔드 개발  >  PHP 성능 최적화: isset()이 strlen()보다 빠릅니다.

PHP 성능 최적화: isset()이 strlen()보다 빠릅니다.

小云云
小云云원래의
2017-11-25 09:02:022305검색

많은 프로그래머는 문자열 길이를 판단할 때 strlen() mb_strlen()과 같은 함수를 사용하는 것을 좋아합니다. 전문적으로 문자열 길이를 테스트했지만 이러한 함수 strlen() mb_strlen()이 최적이 아니라는 사실을 모릅니다. 실제로 PHP가 문자열 길이를 결정할 때 isset()을 사용하는 것이 strlen()보다 빠르고 실행 효율성도 높습니다. PHP에서 문자열의 길이를 결정하려면 isset()을 사용하는 것이 strlen()보다 빠르고 실행 효율성이 더 높습니다.

그러면 isset()이 strlen()보다 빠른 이유는 무엇일까요?

strlen() 함수는 계산을 수행하지 않고 zval 구조(PHP 변수를 저장하는 데 사용되는 C의 내장 데이터 구조)에 저장된 알려진 문자열 길이만 반환하기 때문에 매우 빠르게 실행됩니다. 다만, strlen()은 함수이기 때문에 함수 호출이 소문자, 해시 검색 등 여러 단계를 거치고, 호출된 함수와 함께 실행되기 때문에 다소 느릴 것입니다. 따라서 어떤 경우에는 isset()을 적절하게 사용하면 프로그램 속도가 빨라질 수 있습니다. isset()은 언어 구성이기 때문에 실행 시 함수 조회 및 소문자 등이 필요하지 않습니다.

isset()과 strlen()을 통해 문자열 길이를 판단하는 구체적인 예는 다음과 같습니다.

 $str='http://www.phpernote.com/php-template/436.html';    
 if(strlen($str)<5){echo "未满5";}    
if(!isset($str{5})){echo "未满5";}

strlen()과 isset() 두 함수를 자세히 분석해 보겠습니다.

PHP strlen() 함수

정의 및 사용법

strlen() 함수는 문자열의 길이를 반환합니다.

구문: ​​strlen(string)

매개변수: 문자열
설명: 필수입니다. 확인할 문자열을 지정합니다.

strlen() 함수 인스턴스

<?php    
 echo strlen("Hello world!");    
?>

결과는 다음과 같이 출력됩니다.

12

PHP isset() 함수

isset 함수는 변수가 설정되었는지 감지하는 것입니다.

구문: ​​bool isset (mixed var [, mix var [, ...]] )

반환 값:

변수가 존재하지 않으면 FALSE를 반환합니다.
변수가 존재하고 해당 값이 NULL이면 반환됩니다. 또한 FALSE를 반환합니다.
변수가 존재하고 값이 NULL이 아니면 TRUE가 반환됩니다.
여러 변수를 동시에 검사하는 경우 각 항목이 이전 요구 사항을 충족하는 경우에만 TRUE가 반환되고, 그렇지 않으면 결과가 FALSE가 됩니다.
unset()을 사용하여 변수가 해제된 경우 더 이상 isset()이 아닙니다. isset()을 사용하여 NULL로 설정된 변수를 테스트하면 FALSE를 반환합니다. 또한 NULL 바이트("")는 PHP의 NULL 상수와 동일하지 않습니다.

경고: isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생하기 때문입니다. 상수가 설정되어 있는지 확인하고 싶다면 Defined() 함수를 사용하세요.

isset()이 strlen()보다 빠른 이유는 위와 같습니다.

관련 권장 사항:

php

php에서 isset() 및 unset() 함수를 사용하는 방법에 대한 자세한 설명 문자열의 길이를 반환하는 strlen()

PHP는 문자열 길이 함수를 가져옵니다. strlen() 함수

위 내용은 PHP 성능 최적화: isset()이 strlen()보다 빠릅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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