最近想着有必要系统的学习一下PHP,以备不时只需。
因为php有点儿火,需要了解下优缺点,以分析实际应用。
下面的分析均属于网络搜集,或许稍加自己的分析,旨在为那些有同样需求的同学提供方便,免去搜集之苦。
为什么很多博客系统均用php开发
一:php有一系列很简单高效的原生模板支持函数.博客系统一般情况下都需要用到模板.而php的模板支持能力,可以有效降低网站模板的开发.
二:同时php的这一些列支持函数都是原生支持,并非外挂支持,更不需要模板开发人员专门开发一套脚本级的处理方法.php的这些支持都是c语言级 的支持.运行速度非常高.而Java以及C#在模板开发方面,还没有足够的原生支持.都需要网站开发者自行开发一套模板支持函数.而这些函数的运行速度自 然也只能是Java或者C#级的运行速度.根本无法与php的c语言级的运行速度相比.
开发容易,自然可以节约人力成本.运行效率高,那么在相同的访问量的情况下,对计算机性能的需求也会更低,同样也节约了服务器硬件成本.
有了这两方面的优势,微博客系统自然也就更加倾向于使用php了.
Php和Asp哪个更快更好
参考博文:Fantaxy025025
结论:php更快更好更有前途
浅谈php的优缺点
php语法快速上手,平时参照函数手册,外加MVC或其他快速框架约束,或者干脆不用框架就自己按自己的意愿来也可以。php如此灵活多变的优点注 定了它最要命的缺点,就是很多人phper写出了大量难于维护和扩展的代码 ,当然这也促使着php自身不断完善,以阻止这些垃圾代码的出现。
简言之就是,c、c++很难,仅仅学习和使用c在linux下的第三方库或者c++的所有特性就够一般人折腾一阵子了,花费周期长,在这段时间里会 接触到如何书写和设计流程的问题,或者说c/c++的流程很多经典模式已经功成名就,所以但一旦掌握c/c++了就会如履平地 。
php简单易学易用,几乎不花什么心思学习语法,语法太简单了没啥学头,然而极易滥用。很多人在三天以内就可以轻松写几行php代码,函数想不起来 怎么用,参数位置什么的,简单一查手册搞定。实际上到了php这里,难住我们已经不是语言本身了,而是我们自己如何编程设计的问题,php不像c语言,有 着几十年的开发,几代程序员的累积,我们的大学算法课程几乎都采用c或者c++,而不是php、javascript或者其他脚本语言。到了php这里我 们面对不再是解决某个算法问题,而是直接面向终端产品 ,我们的成果最后会在客户的网页浏览器里一目了然。所以学习php更注重编程思路,各个模块之间调用 流程的东西,而不是模块里的某个过滤字符串函数如何实现效率更高的问题 。
当我们演习一些流行的php框架,或者在某些框架之上的作品时,需要学习也是php编程设计的流程 ,而不是某个邮件函数时如何发邮件的,发丢了怎么 办。所以说php确实很NB,淘宝,yahoo,163也用php,但是人家用的语言版本跟你一样,人家的代码缩进语法跟你一样,不好意思,你还是无法自 己写出淘宝,yahoo,163来。我们需要学的就是这个。
再谈php的优缺点
原来从根本上说PHP和Python/Ruby的运行机制有一个本质区别 :PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链 接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的 时候初始化资源,随后的请求就不必再次初始化资源了。
这种机制的差异带来的区别就是 :
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每 次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年 来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种 限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
这样就从运行机制上说明了php在性能方面的优点和缺点~~~
当然,php的最大的优点当然还是他的“简单”,一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了,这就是PHP最大的优势。
koalant同学的概括非常有意思,我觉得也挺有道理的:
PHP 就是: Quick and Dirty
Java 就是: Beauty and Slowly
Ruby 就是: Quick and Beauty
python 就是: Quick and Simple
++推荐-->>老左的博文系列之php沉思录 :
《PHP沉思录之六:Drupal的性能问题》 提到的观点也不能忽略:
但是,当用户并不是仅仅进行浏览,而是需要频繁地和网站进行互动时,PHP的性能不但无法比拟C和Java,甚至无法与同为脚本语言的Python和Ruby相比。也就是说,PHP更适合于新闻门户这样的内容发布站点,而不是web 2.0应用的首选。
另外一个php优缺点的分析
php框架该不该发展和使用的讨论
参考博文的讨论,很不错:http://www.iteye.com/topic/319039 。
结论:
没有结论,因为php还在发展中;
结论就在上面,知者自知;