이 글은 주로 PHP 최적화 기술을 소개합니다. 관심 있는 친구들이 참고하면 좋습니다.
프로그래머는 프로그램을 작성할 때 항상 프로그램이 최소한의 리소스를 차지하고, 더 빠르게 실행되고, 더 적은 코드를 사용하도록 만들고 싶어합니다. 종종 우리는 이것을 추구하는 동안 많은 것을 잃습니다. 최적화의 목적은 가장 빠른 실행 속도와 가장 쉬운 코드 유지 관리를 위해 최소한의 비용을 지출하는 것입니다. 다음은 여러 가지 PHP 최적화에 대한 요약입니다.
1. in_array 사용법
큰 배열에서는 in_array()를 사용하지 말고, 루프에 20개 이상의 요소가 포함된 배열에서는 이 함수를 사용하지 마세요. in_array()는 리소스 집약적일 수 있으며 작은 배열의 경우 영향이 최소화될 수 있지만 루프에서 큰 배열을 확인하는 데 몇 초가 걸릴 수 있습니다. 이 기능이 꼭 필요한 경우 isset()을 사용하여 배열 요소를 찾으세요. 실제로 키 이름은 키 값을 쿼리하는 데 사용됩니다. isset($array[$var]) 호출은 in_array($var, array_keys($array))보다 훨씬 빠릅니다.
2. 배열 키 이름
PHP에서는 작은 따옴표 없이 문자열을 배열 키 이름으로 사용하는 것이 허용되지만 우리는 이를 원하지 않습니다. 키 이름은 항상 작은 따옴표로 묶어야 합니다. 혼란스러운. 이는 변수 대신 문자열을 키 이름으로 사용하고 있다는 점에 유의하세요.
예:
// 不好的写法 $foo = $assoc_array[blah]; // 好的写法 $foo = $assoc_array['blah']; // 不好的写法 $foo = $assoc_array["$var"]; // 好的写法 $foo = $assoc_array[$var];
3. 문자열 표현 PHP에서 문자열을 표현하는 방법에는 작은따옴표와 큰따옴표 두 가지가 있습니다. 주요 차이점은 구문 해석기가 큰따옴표로 표시된 문자열에 대해 변수 대체를 수행하지만 작은따옴표로 표시된 문자열을 처리하지 않는다는 것입니다. 따라서 문자열 내에서 변수를 처리해야 하는 경우가 아니면 항상 작은따옴표를 사용해야 합니다. 이런 방식으로 구문 해석기가 변수 없이 많은 문자열을 매번 처리할 필요가 없기 때문에 프로그램 실행 비용을 줄일 수 있습니다.
마찬가지로 함수 호출에서 문자열 변수를 인수로 사용하는 경우 변수를 따옴표로 묶을 필요가 없습니다. 이로 인해 문법 해석기가 필요한 것보다 더 많은 작업을 수행하게 됩니다. 큰따옴표 안의 거의 모든 이스케이프 문자는 작은따옴표에 아무런 영향을 미치지 않는다는 점을 기억하십시오. 위의 규칙에 주의를 기울여야 하지만, 코드 가독성을 위해 예외를 두는 것이 적절한 경우도 있습니다.
예:
// 不好的写法 $str = "This is a really long string with no variables for the parser to find."; do_stuff("$str"); // 好的写法 $str = 'This is a really long string with no variables for the parser to find.'; do_stuff($str); // 有时候单引号不是那么合适 $post_url = $phpbb_root_path . 'posting.' . $phpEx . '?mode=' . $mode . '&start=' . $start; // 双引号有时候能让代码行更集中 $post_url = "{$phpbb_root_path}posting.$phpEx?mode=$mode&start=$start";
4. 루프 정의의 연산 비교 부분에 연산이 있는 경우 반드시 최적화하세요. 이 부분은 루프의 모든 단계에서 작동하기 때문에:
// 在每次循环中sizeof函数都要被调用 for ($i = 0; $i < sizeof($post_data); $i++) { do_something(); } // 您可以在循环起始部分对这个不变的量赋值 for ($i = 0, $size = sizeof($post_data); $i < $size; $i++) { do_something(); }
5. 분기 판단, switchcase가 ifelse보다 낫습니다. 분기 문을 사용하는 것이 많은 ifelse를 사용하는 것보다 훨씬 좋습니다.
6. @ 연산자를 남용하지 마세요
@ 연산자를 남용하지 마세요. 매우 간단해 보이지만 실제로 @를 사용하는 것은 @를 사용하지 않는 것보다 몇 배 덜 효율적입니다.
특히 루프에서 @를 사용하지 마세요.
7. 시간을 얻는 방법
현재 시간을 얻기 위해 time()을 사용하는 경우가 많지만, 결국 time()은 $_SERVER['REQUEST_TIME']을 직접 사용하는 것이 더 좋습니다. .
8. 문자열 길이 판단
두 가지 작성 방법:
(1)if(strlen($str) < 5){/* 뭔가를 하세요 */}
(2)if(isset($str [ 5])){ /* do Something */ }
요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.
관련 권장 사항:
PHP에서 2차원 배열의 행렬 전치 연산을 구현하는 방법 및 사례
위 내용은 PHP 최적화 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!