초보자와 개발자를 위한 50개 이상의 PHP 트릭과 팁

PHP는 블로그와 웹사이트를 만드는 데 가장 유용한 언어이며, 더 많은 사용자 정의 기능을 파생시키는 데 사용할 수 있는 많은 기능을 가지고 있습니다. 우리는 가장 유용한 초보자를 위한 PHP 트릭과 팁 그리고 개발자까지. 이 PHP 트릭은 코딩을 생산적이고 더 효과적으로 만듭니다.

초보자를 위한 50개 이상의 PHP 트릭과 팁

PHP 트릭 및 팁 목록

1. 에코는 인쇄보다 빠릅니다.

2. 문자열을 큰따옴표(") 대신 작은따옴표(')로 묶는 것이 더 빠릅니다. PHP는 '...'가 아니라 "..." 내부에서 변수를 검색하기 때문입니다. 끈.

3. 큰따옴표로 묶인 변수 대신 sprintf를 사용하면 약 10배 더 빠릅니다.

4. 문자열 연결 대신 echo의 여러 매개변수(또는 스택형)를 사용합니다.

5. 사전 계산을 사용하고 for 루프의 최대값을 루프가 아닌 루프 이전에 설정합니다. 예: for ($x=0; $x < count($array); $x), 이것은 매번 count() 함수를 호출합니다. 대신 for-loop가 시작되기 전에 $max=count($array)를 사용하십시오.

6. 메모리, 특히 큰 배열을 해제하려면 변수를 설정 해제하거나 null로 설정하십시오.

7. __get, __set, __autoload와 같은 마법을 피하십시오.

8. 가능하면 require_once() 대신 require()를 사용하십시오.

9. 포함 및 요구에서 전체 경로를 사용하여 OS 경로를 확인하는 데 소요되는 시간을 줄입니다.

10. require() 와 include() 는 파일이 없을 경우 중단을 요구한다는 점을 제외하고는 모든 면에서 동일합니다. 성능면에서는 차이가 거의 없습니다.

11. PHP5부터 스크립트 실행이 시작된 시간은 $_SERVER['REQUEST_TIME']에서 찾을 수 있으므로 time()이나 microtime() 대신 이것을 사용하십시오.

12. PCRE 정규식은 EREG보다 빠르지만 strncasecmp, strpbrk 및 stripos와 같은 더 빠른 기본 함수를 대신 사용할 수 있는지 항상 확인하십시오.

13. PHP에서 XML로 구문 분석할 때 PHP XML 기능을 사용하는 xml2array를 사용해 보세요. HTML의 경우 PHP의 DOM 문서 또는 PHP4의 DOM XML을 사용해 볼 수 있습니다.

14. str_replace는 preg_replace보다 빠르며, str_replace는 전반적으로 최상이지만 strtr은 때때로 더 큰 문자열에서 더 빠릅니다. str_replace 내에서 array()를 사용하는 것이 일반적으로 여러 str_replace보다 빠릅니다.

15. "else if" 문은 case/switch라고도 하는 select 문보다 빠릅니다.

16. @를 사용한 오류 억제는 매우 느립니다.

17. 대역폭 사용을 줄이려면 Apache v2에서 mod_deflate를 켜거나 Apache v1에서 mod_gzip을 시도하십시오.

18. 작업이 끝나면 데이터베이스 연결을 닫습니다.

19. $row['id']는 $row[id]보다 7배 빠릅니다. 따옴표를 제공하지 않으면 상수를 의미하지 않는다고 가정하고 의미하는 인덱스를 추측해야 하기 때문입니다.

20. 사용 짧은 태그를 포함하여 다른 모든 스타일은 더 이상 사용되지 않으므로 PHP를 선언할 때 태그.

21. 엄격한 코드를 사용하고 오류, 알림 및 경고를 억제하지 마십시오. 따라서 코드가 더 깨끗해지고 오버헤드가 줄어듭니다. error_reporting(E_ALL)이 항상 켜져 있는 것을 고려하십시오.

22. PHP 스크립트는 정적 페이지보다 Apache httpd에 의해 2-10배 느리게 제공됩니다. 서버 측 스크립트 대신 정적 페이지를 사용하십시오.

23. PHP 스크립트(캐시되지 않은 경우)는 호출할 때마다 즉석에서 컴파일됩니다. PHP 캐싱 제품(예: memcached, eAccelerator 또는 Turck MMCache)을 설치하면 일반적으로 컴파일 시간을 제거하여 성능을 25-100% 향상시킬 수 있습니다. EasyApache3를 사용하여 cPanel에서 eAccelerator를 설정할 수도 있습니다.

24. 너무 자주 변경되지 않는 페이지가 있는 경우 대체 캐싱 기술은 PHP 페이지의 HTML 출력을 캐싱하는 것입니다. Smarty 또는 Cache Lite를 사용해 보십시오.

25. 가능한 경우 strlen 대신 isset을 사용합니다. (즉: if (strlen($foo) < 5) { echo "Foo is too short"; } vs. if (!isset($foo{5})) { echo "Foo is too short"; } ).

26. ++$i는 $ i++보다 빠르므로 가능하면 사전 증가를 사용하십시오.

27. PHP의 미리 정의된 수많은 기능을 사용하고, 기본 기능이 훨씬 더 빠르기 때문에 직접 만들려고 하지 마십시오. 시간과 리소스를 많이 소모하는 함수가 있는 경우 C 확장 또는 모듈로 작성하는 것이 좋습니다.

28. 코드를 프로파일링하십시오. 프로파일러는 코드의 어느 부분이 얼마나 많은 시간을 소비하는지 보여줍니다. Xdebug 디버거에는 이미 프로파일러가 포함되어 있습니다. 프로파일링은 병목 현상을 개략적으로 보여줍니다.

29. 코드를 문서화하십시오.

30. 좋은 코드와 나쁜 코드의 차이점을 배우십시오.

31. 코딩 표준에 충실하면 다른 사람의 코드를 더 쉽게 이해할 수 있고 다른 사람들도 당신의 코드를 이해할 수 있습니다.

32. 별도의 코드, 콘텐츠 및 프레젠테이션: PHP 코드를 HTML과 별도로 유지합니다.

33. Smarty와 같은 복잡한 템플릿 시스템을 사용하는 데 신경 쓰지 말고 PHP에 이미 포함된 것을 사용하고 ob_get_contents 및 추출을 참조하고 데이터베이스에서 데이터를 가져오기만 하면 됩니다.

34. $_POST와 같은 사용자 영역에서 오는 변수를 절대 신뢰하지 마십시오. mysql을 사용할 때는 mysql_real_escape_string을 사용하고 HTML로 출력할 때는 htmlspecialchars를 사용합니다.

35. 보안상의 이유로 웹 루트에 display_errors 또는 phpinfo()와 같은 경로, 확장 및 구성에 대한 정보를 노출할 수 있는 어떤 것도 절대 두지 마십시오.

36. register_globals를 끕니다(이것은 기본적으로 어떤 이유로 비활성화되어 있습니다!). 보안 위험이 있으므로 프로덕션 수준의 어떤 스크립트도 활성화할 필요가 없습니다. 활성화가 필요한 스크립트를 수정하고 unregister_globals()를 사용하여 비활성화해야 하는 스크립트를 수정합니다. PHP6에서 제거되도록 설정되어 있으므로 지금 이 작업을 수행하십시오.

37. 노출을 피하기 위해 비밀번호를 저장하고 평가할 때 일반 텍스트를 사용하지 말고 대신 md5 해시와 같은 해시를 사용하십시오.

38. ip2long() 및 long2ip()를 사용하여 IP 주소를 문자열 대신 정수로 저장합니다.

39. PEAR 프로젝트를 사용하여 바퀴를 재발명하는 것을 피할 수 있으며 높은 표준의 기존 코드를 제공합니다.

40. header('Location: '.$url); die()로 따라가는 것을 기억하십시오. 위치가 변경되어도 스크립트가 계속 실행되거나 가능한 경우 함께 사용하지 않기 때문입니다.

41. OOP에서 메서드가 정적 메서드일 수 있으면 정적 메서드로 선언합니다. 속도 향상은 4배..

42. OOP 방식에서 지역 변수를 증가시키는 것이 가장 빠릅니다. 함수에서 지역 변수를 호출하는 것과 거의 동일하고 전역 변수를 증가시키는 것은 지역 변수보다 2배 느립니다.

43. 개체 속성(예: $this->prop++)을 증가시키는 것은 지역 변수보다 3배 느립니다.

44. 정의되지 않은 지역 변수를 증가시키는 것은 미리 초기화된 것보다 9-10배 느립니다.

45. 전역 변수를 함수에서 사용하지 않고 선언하기만 하면 속도가 느려집니다(로컬 변수를 증가시키는 것과 거의 같은 양만큼). PHP는 아마도 전역이 존재하는지 확인하기 위해 검사를 할 것입니다.

46. ​​성능의 변화 없이 테스트 클래스에 10개의 메서드를 더 추가했기 때문에 메서드 호출은 클래스에 정의된 메서드의 수와 무관한 것으로 보입니다.

47. 파생 클래스의 메서드는 기본 클래스에 정의된 메서드보다 빠르게 실행됩니다.

48. 하나의 매개변수와 빈 함수 본문이 있는 함수 호출은 7-8개의 $localvar++ 작업을 수행하는 것과 거의 같은 시간이 걸립니다. 유사한 메서드 호출은 물론 약 15개의 $localvar++ 작업입니다.

49. 모든 것이 OOP일 필요는 없습니다. 종종 오버헤드일 뿐입니다. 각 메소드와 객체 호출은 많은 메모리를 소비합니다.

50. 사용자 데이터를 절대 신뢰하지 말고 mysql_escape_string 또는 addlashes 대신 mysql_real_escape_string을 사용하여 SQL 쿼리에서 사용하는 문자열을 이스케이프하십시오. 또한 magic_quotes_gpc가 활성화된 경우 스트립슬래시를 먼저 사용해야 합니다.

51. PHP mail() 함수 헤더 삽입 문제를 피하십시오.

52. 데이터베이스 변수(최소한 암호)를 설정 해제합니다. 데이터베이스 연결을 만든 후에는 필요하지 않습니다.

53. RTFM! PHP는 환상적인 매뉴얼을 제공하는데, 아마도 현존하는 최고의 매뉴얼 중 하나일 것입니다. 이 매뉴얼은 실제 언어를 사용하고 실제 예제를 제공하고 평범한 영어로 말하는 것을 가능하게 합니다.

이것은 PHP 언어를 배우기 시작한 지 얼마 되지 않은 사람들과 좋은 시절부터 개발 중인 사람들에게 매우 유용할 수 있는 PHP Tricks and Tips 중 일부입니다. RTFM은 PHP를 배우는 가장 효율적인 방법입니다.

아이쉬와르 바버

Aishwar Babber는 열정적인 블로거이자 디지털 마케터입니다. 그는 최신 기술과 장치에 대해 이야기하고 블로그를 운영하는 것을 좋아합니다. 기즈모베이스. 그는 현재 다양한 프로젝트에서 정규직 마케터로 디지털 마케팅, SEO 및 SMO 전문 지식을 연습하고 있습니다. 그는 에 적극적인 투자자이다. 제휴베이 ImageStation의 디렉터이기도 합니다.

"초보자 및 개발자를 위한 22개 이상의 PHP 트릭과 팁"에 대한 50개의 생각

  1. 좋은 팁이지만 포인트 37을 변경해야 한다고 생각합니다. 간단한 md5 해시는 우리가 살고 있는 세상에서 충분히 정교하지 않습니다.

    댓글
  2. 15 번
    if/else가 스위치보다 빠르면 맞습니다. 몇 가지 테스트를 수행했습니다.
    그러나 어떤 경우에 스위치를 사용할지 고려해야 합니다.

    나는 그것을 순환하고 10,1000,100000 및 1만 주기를 테스트했으며 결과는 다음과 같습니다.
    100k 주기에서 로컬 시스템에서 0,13초 차이를 얻습니다(외부 서버에서는 더 적은 차이를 가져와야 함).

    따라서 스위치의 if/else 사용을 고려해야 합니다. 나는 더 깔끔한 코드 때문에 스위치를 사용하는 것을 선호한다. if/else 대신 1 스위치, 2 스위치, 심지어 100 스위치를 사용하는 것은 중요하지 않습니다. 의미가 없습니다.

    댓글
  3. 26 번
    나는 지금 테스트를 실행하고,
    $i++ 및 ++$i 사용

    간단합니다. 26mil 이상을 사용하기 전까지 숫자 10은 의미가 없습니다. 주기.
    그리고 차이?

    $i++ 10초로 2.67448만 사이클
    ++$i 10초로 2.605528mil 사이클

    댓글
  4. 24. (…) Smarty나 Cache Lite를 사용해 보세요.
    33. Smarty와 같은 복잡한 템플릿 시스템을 사용하지 마십시오.

    괜찮아요.

    (저는 개인적으로 #33을 삭제하겠습니다. smarty(또는 다른 템플릿 시스템)는 ob_ 기능에 비해 많은 이점이 있습니다…)

    댓글
  5. Echo는 하나의 opcode로 인쇄하는 것보다 빠르므로 실제로 중요하지 않습니다. 그리고 print()는 함수이고 echo는 아닙니다. 이 시도:

    $variable 및 print '변수가 설정되었습니다!';

    그리고 증가에 대해: $i += 1; 가장 빠른 것입니다.

    좋은 기사, 감사합니다!

    댓글
  6. 이것은 일부 PHP 코드 트릭의 좋은 요약입니다. 개발자는 자신이 개발하는 코드의 성능도 고려해야 합니다. 공유해 주셔서 감사합니다.

    댓글
  7. 안녕하세요, 그 훌륭한 콘텐츠와 PHP는 매우 멋진 언어입니다. 이해하고 배우기 매우 쉬운 기능으로 인해 이 트릭을 확실히 따를 것입니다.

    댓글
  8. 공유해 주셔서 감사합니다.
    좋은 팁이지만 포인트 37을 변경해야 한다고 생각합니다. 간단한 md5 해시는 우리가 살고 있는 세상에 충분히 정교하지 않습니다.

    댓글

코멘트 남김