PHP与Python的比较

转载 2012年03月22日 13:55:32
Python与PHP的共同之处:
1. 都是解释型的,它们都是有动态类型的高级语言(动态语言)。
2. 都是开源的,(当然,要除掉Zend的几个产品)。
3. 都有大量开发者社区来支持。
4. 都易学,比Java容易学,甚至比Perl都容易学。
5. 都易扩展,用C,C++,Java都可以对它们扩展
6. 都有很好的兼容性,它们不用重新编译,就可以运行在目前几乎所有的平台上。
7. 它们的函数都支持可变参数个数
8. 都能将活动对象冻结成字符串(译者注:也就是序列化功 能)(这样就可以实现外排序以及将对象通过网络迁移等功能),然后,这些对象又能完整无缺的被转换成一模一样的对象。PHP的serialize函 数,Python的pickle、marshal模块就是用来实现这个特性的。请注意,由于PHP缺少模块,它处理对象和类的序列化能力要比Python 弱很多。在PHP中,当一个对象被序列化时,只有它的属性被序列化了,而function没有被序列化,因此,在反序列化的时候,对象的类要和原来脚本中 的类一样(名字要一样)。而在Python中,这个问题通过module/import框架自动解决了。(this COULD be handled with PHP 5's autoload(), but is not done automatically)

PHP有的,而Python没有的有哪些呢?
1. 来自C和Perl的语法,大括号$符号
2. “switch”语句和‘do … while’结构
3. 递增递减操作符
4. 三元操作 (istrue ? a : b),我的文章Python三目运算,and or陷阱》里讲了在Python中如何模拟实现
5. 让人精神分裂的戏剧化的函数名。内嵌库的命名方式多种多样。没有“命名空间”,所以函数名常常需要有个前缀来说明它的所属(但是事实上,常常没有前缀)。函数常常放到类里以模拟“命名空间”。PHP5.3中会加入“名字空间”,不过可惜PHP5.3还未出世。
6. 它是一个很随意的语言,所有的变量都没“set”为NULL,而且有点“弱类型”系统的样子(不要和“动态类型”混淆了)
7. 有个很有利的环境(因为通常境况下它都已经安装好了)。
8. 引用(‘$a = & $b’代表当$b改变的时候,$a也变了)。
9. 一个数组类型既可以同时作为list和dictionary。Dictionary的键值的按照原始顺序迭代。
10. 函数和属性的 private、protected、public。
11. 类和方法的abstract and final修饰
12. 接口

哪些又是Python中有,而PHP中没有的呢
1. Python是通用编程语言(而不是只为Web开发设计)
2. 用缩进来标识程序块,而不是用大括号({})
3. 支持命名空间和模块
4. 小内核
5. 非常清晰、简明、直接的语法
6. 用docstrings和pydoc可以自己生成文档(PHP 5 有反射和doc strings)
7. 方法和函数的参数可以键值标识(f = open(filename='/abc.txt')),容易支持缺省参数
8. 真正的面向对象,一流的类和函数
反驳:面向对象在PHP5中已经完全修补好了
反反驳:但是仍然很痛苦,明显是乱搞
反驳:PHP 5 支持真正的PPP(private, public, protected),而Python不支持。在PHP中,开发者不需要将类方法的第一个参数设为self,因为可以显示的使用$this
9. 在标准库中广泛使用了类
反驳:PHP 5 有SPL,它是完全基于类的
10. 有明确的私有属性表示方法
反驳:PHP 5对方法和属性都支持PPP(private, public, protected)
11. 多重继承
反驳:PHP 5支持Trail,它更灵活,而却没有多重继承那么痛苦。我不认为多重继承是个好东西,Java也避免了这个特性
12. 面向对象的文件处理
13. 方法链
反驳:PHP5中,方法链在对象实例化时生成。它被称为fluent interface 
14. 极好的自省支持
反驳:PHP 5 有反射
反反驳:我们说的是极好的自省
15. 所有的东西都是引用(PHP中引用是很痛苦的)
16. ‘del’语句对所有的东西通用,PHP中变量用‘unset’,数组成员用其他的
反驳:数组成员可以被 ‘unset()’
17. 大小写敏感(PHP的函数是不区分大小写的,但是变量却是区分大小写的)
18. 数组分割的语法很简答 (‘abc’[1:2] == 'b')
反驳:PHP的array_slice()方法还不够简单么?
19. lambda表达式
20. 迭代器(PHP 5中支持)
21. 结构化异常处理
反驳:在PHP5中有
反反驳:PHP中没有等价与else和finally的东西
22. 操作符重载
反驳:操作符重载是有害的,是语言不好的设计,在PHP中,可以使用runkit扩展来模拟这个特性
23. 集成SWIG
24. 多线程
25. 有非常好的profiler(用于跟踪代码的执行性能)
反驳:XDebug是个个调试和profiling扩展,支持PHP4和PHP5,它非常流行
26. 很多调试器和IDE
反驳:PHP有很早就有商业化的工具,Eclipse PDT是开源的 Netbeans PHP也是开源的
27. 多种高级数据类型(lists、tuples、dicts、mx.DateTimesNumPy arrays, etc.)
28. 数组(lists)和相链数组associative arrays(Dictionary)区别对待
29. 编译的字节码被缓存
反驳:花$980就能从zend买到。XCache和EAccelarator都是开源的
30. 有标准的数据库API函数库
反驳:pecl.php.net/PDO -- PHP 5.1
31. 支持所有主流的GUI框架
反驳:PHP支持GTK和QT
32. 很强的全球化支持和Unicode支持
反驳:PHP6将包含对Unicode的支持。这个特性在PHP5.2和PHP5.3中通过intl扩展实现,在pecl.php.net中能找到这个模块
33. 成熟、稳定、向上兼容
反驳:PHP是稳定、成熟、向前向后兼容的
反反驳:。。。

作为网页开发框架的比较
PHP内核语言中直接内建有WEB开发的特性,不像PHP,Python的WEB开发能力是由扩展模块实现的。基本的CGI是通过Python的标准库里 的‘cig’模块提供的。还有很多第三方模块,有些是对这个模块补充,其他的都是这个模块的竞争者。因此,Python提供了更灵活的WEB开发基础。

。。。to be continued。

PHP与Python的比较 (PHP vs Python)

在这里,我节录了一些关于PHP和Python比较的文章和讨论,让我们能从另外一个 角度来看待PHP的优点和缺点。同样作为一种脚本语言,底层同样是由C语言来开发的,Python是OO的,现在PHP也OO...
  • phphot
  • phphot
  • 2008年02月13日 12:26
  • 14352

Php与python简单比较

就如各种其他语言一样,完完全全的讨论php和python哪种语言好是完全没有必要的,每种语言都有各自的优缺点,被使用的广泛程度则取决于他是是否迎合了时代的发展而已。使用的场景不同各种语言的适用程度也是...
  • In_computer
  • In_computer
  • 2015年10月16日 16:55
  • 3876

python与php的异同,和各自的优缺点?

1.语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。...
  • panying1
  • panying1
  • 2016年12月20日 08:51
  • 1853

PHP与Python的比较

PHP与Python的比较 Python与PHP的共同之处: 1. 都是解释型的,它们都是有动态类型的高级语言(动态语言)。 2. 都是开源的,(当然,要除掉Zend的几个产品)。 3. 都有...
  • wide288
  • wide288
  • 2013年02月26日 17:14
  • 955

HTML5、php、python优缺点都是什么?

HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML [1](标准通用标记语言下的一个应用)标准版本;现在仍处于发展阶段,但大部分浏览器已经支持某些 ...
  • wqdwin
  • wqdwin
  • 2015年07月30日 22:26
  • 1007

python和php的文本处理速度对比

运行环境: PHP 5.4.17 Python 2.6.6 linux 64位 一、逐行读取数据文件,用tab键做分隔处理 split.py #!/usr/bin/pytho...
  • tsxw24
  • tsxw24
  • 2013年08月12日 17:05
  • 2987

Java与PHP对于web开发的八大比较-------阿冬专栏

Web开发之:Java与PHP的八大比较   原文参考来源: http://www.e800.com.cn/articles/2012/0607/510399.shtml  比...
  • zhangdong305
  • zhangdong305
  • 2015年08月28日 10:38
  • 4743

六种主流编程语言(C、C++、Python、JavaScript、PHP、Java)特性对比

这些年来我陆陆续续已经学习了六种编程语言,有些人会说语言学到最后不都差不多吗?其实可以这样讲,也可以不这样讲。虽然每种语言的表达能力大部分是重合的,只是语法表现形式不一样,但是由于历史发展的原因,每种...
  • lyn167
  • lyn167
  • 2016年06月13日 14:17
  • 1048

Python才是世界上最好的言语,php,java靠边站

伟大的入门编程语言有什么特征呢?或者换一种方式问,“当我们教他们编程时,应该给予他们什么?”对于成年人和青少年学生,我认为以下五点非常重要。 学生从入门语言获得的五样东西 非常棒的首次体验...
  • xiesiyang68
  • xiesiyang68
  • 2017年10月12日 15:58
  • 308

Python和PHP之比较

  偶尔做个简单的WEB服务测试程序,我还是喜欢采用PHP。简洁,风格和C/C++接近,上手快,而且库也很齐全。以前为广东移动做移动行业终端的演示程序时,采用国内一个兄弟写的FleaPHP开源框架,两...
  • xingtian713
  • xingtian713
  • 2009年09月08日 22:13
  • 11622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP与Python的比较
举报原因:
原因补充:

(最多只允许输入30个字)