由于PHP的所有的扩展接口都是独立团队开发完成的,网站制作同时在开发时为了形成相应数据的个性化操作,所以PHP虽然支持许多数据库,可是针对每种数据库的开发语言都完全不同。这样形成针对一种数据库的开发工作,在数据库进行升级后需要开发人员进行几乎全部的代码更改工作。而为了让应用支持更多种的数据库,就需要开发人员将同样的数据库操作使用不同的代码写出多种代码库出来,使程序员的工作量大大增加。 PHP同JSP一样具有跨平台的能力,但是网站建设两者的实现方式不同。JSP完全基于Java的跨平台特性,架构于Java虚拟机(JVM)之上。而PHP采用的是不同平台之上里新编译的方式,以适应不同平台之间的差异性。 可以认为PHP是一个纯粹的脚本编译器,它是将脚本编译成为需要执行的函数,再去执行它们,整个系统以一种函数调用的方式进行,除Windows外,外部扩充不能由一些“动态加载”的方式进行,只能静态地编译进PHP函数库中。从中也就会明白为什么PHP需要支持这种或者那种扩充功能时它一定要与相应平台的lib库进行再编译的原因。这种方式的最大的好处就是最大化地利用了CPU和内存,同时使用的是本地化的调用,从而达到了最快运行速度。 PHP在UNIX/Linux下有着更好的编译环境、更多的共享资源和更好的性能,Linux+Apache +PHP+MySQL成为许多人选择的黄金组合。 PHP语法简单、书写容易、是一种能快速学习、跨平台、有良好数据库交互能力的开发语言。对于在Unix/Linux下做Web应用的人是一种较好的选择。 但是PHP安装复杂。由于PHP的每一种扩充模块并不是完全由PHP本身来完成,需要许多外部的应用库,如图形需要扣库、LDAP需要LDAP库……这样在安装完成相应的应用后.再联编进PHP中来。这些都是一般开发人员在使用PHP前所先要面对的问题,正是这样的问题让许多开发人员转而使用其他的开发语言,毕竟UNIX没有那么多用户。 PHP没有组件的支持。PHP所有的扩充就只能依靠所给出的开发接口.事实上这样的接口还不够多。网时难以将集群、应用服务器这样的特性加入到系统中去,而一个大型的站点或是一个企业级的应用一定需要这样的支持的。因此PHP难以开发大型应用。 |