>  기사  >  php教程  >  PHP 마스터로 가는 길 (3)

PHP 마스터로 가는 길 (3)

黄舟
黄舟원래의
2016-12-17 09:57:371071검색

ereg-replace 대신 str-replace를 사용하세요
Perl 프로그래밍에 익숙한 프로그래머는 문자열 교체 작업을 완료하기 위해 ereg_replace를 더 선호합니다. 왜냐하면 PHP에서 ereg_replace의 사용법은 패턴 일치의 사용법과 유사하기 때문입니다. 펄에서. 그러나 다음 코드는 ereg_replace 대신 str_replace를 사용하면 코드 속도가 크게 향상된다는 것을 증명합니다.

str_replace 및 ereg_replace의 실행 속도 테스트

//str_replace의 실행 속도를 테스트하는 코드


?> for ($i=0; $i str_replace(i>, b>, $string).
}
?> ereg_replace의 실행 속도




for ($i=0; $i ereg_replace(<([ /]*)i> ;, <\1b>, $string)
;
}
?>




🎜> //결과 인쇄


결론

str_replace 사용 시간 -


ereg_pattern 사용 시간 -
위 코드를 실행하여 결과는 다음과 같습니다.
시간 use str_replace - 0.089757
ereg_pattern 사용 시간 - 0.248881
실행 결과에서 문자열 대체 함수로 ereg_replace 대신 str_replace를 사용하면 코드 실행 속도가 크게 향상되는 것을 확인할 수 있습니다.
3. 문자열 인용에 주의하세요
PHP는 다른 많은 프로그래밍 언어와 마찬가지로 큰따옴표("")를 사용하여 문자열을 인용하거나 작은따옴표()를 사용할 수 있습니다. 그러나 PHP에서는 큰따옴표를 사용하여 문자열을 인용하면 PHP 파서는 먼저 문자열에 변수에 대한 참조가 있는지 분석합니다. 변수가 있으면 해당 변수를 대체합니다. 작은따옴표인 경우 그다지 복잡하지 않습니다. 작은따옴표로 묶인 모든 문자열이 직접 표시됩니다. 분명히, PHP 프로그래밍에서는 큰따옴표보다 작은따옴표를 사용하여 문자열 변수를 인용하는 것이 더 빠릅니다.
4. 데이터베이스에서 공동 작업 사용을 피하세요
다른 웹 프로그래밍 언어에 비해 PHP의 데이터베이스 기능은 매우 강력합니다. 그러나 PHP에서 데이터베이스를 실행하는 것은 여전히 ​​시간이 많이 걸리고 노동 집약적인 문제입니다. 따라서 웹 프로그래머는 데이터베이스 쿼리 작업을 최소화하고 데이터베이스에 적합한 인덱스를 설정해야 합니다. 또 한 가지 주목할 점은 PHP를 사용하여 데이터베이스를 운영할 때 여러 데이터 테이블의 공동 작업을 사용하지 않는 것입니다. 공동 작업은 데이터베이스의 쿼리 기능을 향상시킬 수 있지만 서버에 대한 부담을 크게 증가시킵니다.
이 문제를 설명하기 위해 아래의 간단한 예를 살펴보겠습니다.
데이터베이스에 foo와 big_foo라는 두 개의 데이터 테이블을 생성했습니다. 데이터 테이블 foo에는 1부터 1000까지의 모든 자연수를 포함하는 필드가 하나만 있습니다. 데이터 테이블 big_foo에도 필드가 하나만 있지만 1부터 1,000,000까지의 모든 자연수가 포함되어 있습니다. 따라서 크기 측면에서 big_foo는 foo 자체와 결합된 것과 같습니다.
$db->query("foo에서 * 선택");
0.032273초
$db->next_record(); db->query( "foo 값에 삽입 ​​(NULL )");
0.019506초
$db->query("select * from foo as a, foo as b");
17.280596초
$db ->query("select * from foo as a, foo as b where a.id > b.id");
14.645251 secs
$db->query("select * from foo as a , foo as b where a. id = b.id");
0.041269초
$db->query("select **** from big_foo");
25.393672초
위 연산의 결과로 Join을 찾을 수 있습니다. 1,000개의 레코드가 있는 두 개의 데이터 테이블은 1,000,000개의 레코드가 있는 대규모 데이터 테이블에서 단독으로 작업하는 것보다 훨씬 빠르지 않습니다.
5. include와 require의 차이점에 주의하세요
PHP 프로그래밍에서 include()와 require()는 동일한 기능을 가지고 있지만, 사용법에 약간의 차이가 있습니다. require()는 무조건 포함 함수입니다. 예를 들어, 다음 예에서 $sogthing 변수가 true이면 somefile 파일이 포함됩니다.
if($something){
include("somefile");
}
그러나 $something의 값이 무엇이든 다음 코드는 somefile 파일을 파일에 포함합니다.
if($ Something ){
require("somefile");
}
다음의 흥미로운 예는 이 두 함수의 차이점을 완벽하게 보여줍니다.
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++; 프로그램은 반복될 때마다 동일한 파일을 포함합니다. 분명히 이것은 프로그래머의 원래 의도가 아닙니다. 코드에서 우리는 이 코드가 각 루프에 다른 파일을 포함하기를 원한다는 것을 알 수 있습니다. 이 기능을 완료하려면 include() 함수를 사용해야 합니다:
$i = 1
while ($i < 3) {
include("somefile.$i") ;
$ i+++;
}
6. echo와 PRint의 차이점에 주목하세요
PHP에서 echo와 print의 기능은 기본적으로 동일하지만 둘 사이에는 미묘한 차이가 있습니다. PHP 코드에서 print를 일반 함수로 사용할 수 있습니다. 예를 들어 다음 코드를 실행하면 $res 변수의 값은 1이 됩니다.
$ret = print "Hello World";
이는 일부 복잡한 표현에 print를 사용할 수 있지만 echo는 사용할 수 없음을 의미합니다. 마찬가지로 코드의 echo 문은 print 문보다 약간 빠르게 실행됩니다. 왜냐하면 echo 문은 어떤 값도 반환하지 않아도 되기 때문입니다.

위 내용은 PHP Master's Road(3)의 내용입니다. 기사, PHP 중국어 웹사이트(www.php.cn)를 주목해주세요!


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