PHP를 개발하는 프로그래머는 PHP에 내장된 함수가 많이 있다는 것을 알아야 합니다. 이 문서에서는 개발에 매우 유용한 8가지 필수 PHP 함수를 공유합니다. 실용적입니다. 모든 PHP 개발자가 마스터할 수 있기를 바랍니다.
1. 함수 매개변수를 원하는 만큼 전달하세요.
.NET 또는 JAVA 프로그래밍에서 함수 매개변수의 수는 일반적으로 고정되어 있지만 PHP에서는 매개변수를 원하는 수만큼 사용할 수 있습니다. 다음 예에서는 PHP 함수의 기본 매개변수를 보여줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
다음 예는 func_get_args() 메서드를 사용하는 PHP에서 변수 매개변수를 사용하는 예입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
2. glob()을 사용하여 파일 찾기
대부분의 PHP 함수의 함수 이름은 문자 그대로 그 목적을 이해할 수 있지만, glob()을 보면 그것이 무엇을 위해 사용되는지 모를 수도 있습니다. 실제로 glob() 및 scandir()을 사용하여 파일을 찾을 수 있습니다. , 다음 사용법을 참조하세요:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
경로를 추가할 수도 있습니다:
1 2 3 4 5 6 7 8 9 |
|
절대 경로를 얻으려면 realpath() 함수를 호출할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
3. 메모리 사용량 정보 확인
PHP의 메모리 재활용 메커니즘은 이미 매우 강력합니다. 또한 PHP 스크립트를 사용하여 현재 메모리 사용량을 얻고, memory_get_usage() 함수를 호출하여 현재 메모리 사용량을 얻고, memory_get_peak_usage() 함수를 호출하여 최대 메모리 사용량을 얻을 수도 있습니다. 참조 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
4. CPU 사용량 정보 얻기
메모리 사용량을 얻은 후 PHP의 getrusage()를 사용하여 CPU 사용량을 얻을 수도 있습니다. 이 방법은 Windows에서는 사용할 수 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
이 구조는 CPU를 잘 알지 않는 이상 매우 모호해 보입니다. 아래에 몇 가지 설명이 있습니다:
ru_oublock: 출력 동작 차단
ru_inblock: 입력 동작 차단
ru_msgsnd: 메시지가 전송되었습니다
ru_msgrcv: 메시지가 수신되었습니다
ru_maxrss: 최대 상주 세트 크기
ru_ixrss: 총 공유 메모리 크기
ru_idrss: 총 비공유 메모리 크기
ru_minflt: 페이지 재활용
ru_majflt: 페이지가 잘못되었습니다
ru_nsignals: 수신된 신호
ru_nvcsw: 활성 컨텍스트 전환
ru_nivcsw: 수동 컨텍스트 전환
ru_nswap: 스왑 영역
ru_utime.tv_usec: 사용자 모드 시간(마이크로초)
ru_utime.tv_sec: 사용자 모드 시간(초)
ru_stime.tv_usec: 시스템 커널 시간(마이크로초)
ru_stime.tv_sec: 시스템 커널 시간(초)
스크립트가 소비하는 CPU 양을 확인하려면 "사용자 모드 시간" 및 "시스템 커널 시간" 값을 확인해야 합니다. 초와 마이크로초 부분은 별도로 제공됩니다. 마이크로초 값을 100만으로 나누어 초 값에 더하면 소수 부분으로 초 수를 구할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
이 작업에는 약 14초의 CPU 시간이 소요되었으며, 시스템 호출이 없었기 때문에 거의 모두 사용자 시간이었습니다.
시스템 시간은 CPU가 시스템 호출에 대한 커널 명령을 실행하는 데 소비한 시간입니다. 예를 들면 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
위 예시에서는 CPU를 더 많이 소모하는 것을 볼 수 있습니다.
5. 시스템 상수 가져오기
PHP는 현재 줄 번호(__LINE__), 파일(__FILE__), 디렉터리(__DIR__), 함수 이름(__FUNCTION__), 클래스 이름(__CLASS__), 메서드 이름(__METHOD__) 및 네임스페이스(__NAMESPACE__)를 가져올 수 있는 매우 유용한 시스템 상수를 제공합니다. ), C 언어와 매우 유사합니다.
이러한 것들은 주로 디버깅에 사용된다고 생각할 수 있지만 반드시 그런 것은 아닙니다. 예를 들어 다른 파일을 포함할 때 ?__FILE__을 사용할 수 있습니다(물론 PHP 5.3 이후에는 __DIR__을 사용할 수도 있습니다).
1 2 3 4 5 6 |
|
다음은 __LINE__을 사용하여 프로그램 디버깅에 도움이 되는 일부 디버그 정보를 출력합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
6. 고유 ID 생성
많은 친구들이 md5()를 사용하여 고유한 숫자를 생성하지만 md5()에는 몇 가지 단점이 있습니다. 1. 혼란으로 인해 데이터베이스의 정렬 성능이 저하됩니다. 2. 너무 길어서 더 많은 저장 공간이 필요합니다. 실제로 PHP에는 고유 ID를 생성하는 함수가 있습니다. 이 함수는 uniqid()입니다. 사용 방법은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 |
|
이 알고리즘은 CPU 타임스탬프를 기준으로 생성되므로 비슷한 기간에 ID의 처음 몇 자리가 동일하므로 ID 정렬도 용이하므로 중복을 피하고 싶다면 먼저 사용하면 됩니다. ID에 다음과 같은 접두사를 추가하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
7、序列化
PHP序列化功能大家可能用的比较多,也比较常见,当你需要把数据存到数据库或者文件中是,你可以利用PHP中的serialize() 和 unserialize()方法来实现序列化和反序列化,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
如何序列化成json格式呢,放心,php也已经为你做好了,使用php 5.2以上版本的用户可以使用json_encode() 和 json_decode() 函数来实现json格式的序列化,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
8、字符串压缩
当我们说到压缩,我们可能会想到文件压缩,其实,字符串也是可以压缩的。PHP提供了 gzcompress() 和gzuncompress() 函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
几乎有50% 压缩比率。同时,你还可以使用 gzencode() 和 gzdecode() 函数来压缩,只不用其用了不同的压缩算法。
以上就是8个开发必备的PHP功能,是不是都很实用呢?