1. 장점: 오픈 소스, 무료, 빠름 [빠른 프로그램 개발, 빠른 실행, 빠른 기술 자체 학습]
1) 크로스 플랫폼, 뛰어난 성능, Linux/Unix와 결합 시 45% 더 나은 성능 Windows 및 LAMP(Linux/Apache/Mysql/PHP) 또는 FAMP(FreeBSD/Apache/Mysql/PHP)와 같은 많은 무료 플랫폼과 결합하는 것이 매우 경제적입니다. N 유형의 데이터베이스를 지원하는 PostgreSQL 또는 Oracle에. (N≥10)
2) 구문이 간단합니다. C와 Perl을 배우면 시작하기 쉽고 부분적으로 ASP와 유사합니다. NuPHPed나 Zend Studio 등과 같은 성숙한 개발 도구가 있으며 Linux 플랫폼에서는 Eclipse 등을 사용할 수 있습니다.
3) 현재 WebService, Ajax, XML 등 주류 기술이 지원되므로 응용에 충분합니다.
4) ADODB 또는 PEAR::DB를 데이터베이스 추상화 계층으로 사용하고, Smarty 또는 스마트 템플릿을 템플릿 계층으로 사용하는 등 비교적 완벽한 지원이 있습니다. PHP 5.1인 경우 PDO(PHP Data Object)를 사용할 수도 있습니다. ) 데이터베이스에 액세스합니다.
5) MVC를 지원하는 프레임워크인 phpMVC, ASP.net과 같은 이벤트 중심 이벤트를 지원하는 프레임워크: Prado, Ruby On Rails: Cake와 같은 빠른 개발을 지원하는 프레임워크 등 성숙한 프레임워크가 많이 있습니다. , 이는 귀하의 애플리케이션 요구 사항을 충족하기에 충분합니다.
6) PHP 5에는 이미 기본적인 객체 지향 요구 사항에 적응할 수 있는 성숙한 객체 지향 시스템이 있습니다. 대규모 프로젝트 개발에 적합합니다.
7) PHP 개발을 지원하는 성숙한 커뮤니티가 있습니다.
8) 현재 Taobao, Yahoo, 163, Sina 및 기타 대형 포털에서 많은 대규모 애플리케이션이 PHP를 개발 언어로 사용하므로 대규모 포털에서는 충분히 사용할 수 있다고 생각합니다. 사용됩니다.
9) 사용할 수 있는 오픈 소스 프레임워크나 오픈 소스 시스템은 많습니다. 예를 들어 잘 알려진 오픈 소스 프레임워크로는 Zend Framework, CakePHP, CodeIgniter, Symfony 등이 있고, 오픈 소스 포럼으로는 Discuz!, Phpwind 등이 있습니다. 등, 오픈소스 블로그 WordPress, Ecshop, ShopEx 등 오픈소스 온라인 스토어 시스템, UCHome, ThinkSNS 등 오픈소스 SNS 시스템.
10) 사용 비용이 저렴함(linux apache mysql php 커널)
2. 단점,
1) 함수 이름 지정이 표준화되지 않음 Camel Case 방식 및 내림차순, 매개 변수 전송 위치가 다름
2) Single thread ; PHP의 pthreads 확장 기능은 오랫동안 사용 가능했지만 PHP 자체는 항상 단일 프로세스 프로그램이었습니다. 그러나 충분히 안정적이지 않으며 실행 중에 설명할 수 없을 정도로 중단됩니다. PHP 확장은 모두 C로 작성되었습니다. 즉, 확장에 스레드 경쟁 리소스 제어 문제가 있으면 모든 것이 중단됩니다
3) Core Asynchronous 네트워크는 지원되지 않습니다(물론 Linux에는 동기식 비차단 네트워크 모델만 있습니다). 그러나 이것이 부족하면 대규모 동시성을 견딜 수 있는 네트워크 애플리케이션을 개발하기가 어렵습니다. 기존 네트워크 모델과 io가 모두 차단됩니다. 기본적인 프로그래밍 접근 방식은 프로세스(또는 스레드)가 사용자 연결 요청에 응답하는 것입니다. 따라서 수천 개의 네트워크 연결이 필요한 실시간 온라인 게임과 같은 작업을 완료하는 것은 불가능합니다. PHP에는 이를 어느 정도 보완할 수 있는 Libevent 및 eio 확장 기능이 있지만 완벽하다고 느껴지지는 않습니다. 4) 웹 개발만 지원하며 .exe 파일이나 데스크톱 응용 프로그램을 만드는 것이 편리하지 않습니다. 프로그램.
5) 크롤러, 자동 실행 스크립트 및 과학 컴퓨팅 프로젝트에는 적합하지 않지만 이를 달성하는 방법은 많습니다.
6) 사후관리가 어렵다. 후반기의 속도 향상 공간은 상당히 제한되어 있습니다.
Brother Bird [Laruence]의 말 인용:
PHP가 멀티스레딩을 지원하지 않는다고 말하면(이 사람들 중 90%는 멀티스레딩 모델과 IO 재사용 모델이 동일하다는 사실을 모릅니다), PHP가 멀티스레딩을 지원한다고 말하는 것은 좋지 않습니다. 비동기식을 지원하지 않는데(90%의 사람들은 비동기식이 무엇인지 모릅니다) PHP는 패배자들을 위한 언어라고 합니다(99%의 사람들은 단지 IQ 우월을 찾고 있습니다). 이런 논쟁을 보면 정말 무력한 기분이 듭니다. 바보인 척 하는 사람을 똑똑하게 만들 수 있는 방법은 없기 때문이죠.