我知道PHP一点点.但Python对我来说是全新的.我只知道它是"相似的",对吧?还是错的?我应该知道哪些不同之处?
ros*_*oft 16
这是python维基百科的链接.它突出了主要的差异和共同的元素:http://wiki.python.org/moin/PythonVsPhp
PHP不具备哪些优势?'switch'语句和'do ... while'构造递增和递减和赋值运算符(赋值只是在Python中的语句)三元运算符/语句(...?...:...)Retort:Python 2.5有条件表达式
一个权宜的(通常安装的)环境,一个数组类型,可以兼作列表和字典.字典键按原始顺序迭代.属性和方法的private,protected和public修饰符类和方法接口的abstract和final修饰符注意:但是,由于Python具有多重继承,因此对接口的需求较少.Python 2.6还引入了抽象基类.
函数嵌入HTML中的变量默认参数注意:mod_python也得到了这个.
提供各种字节码缓存
来自C/C++和Perl的(更详细)语法,带有大量花括号和美元符号以及" - >" - s
混淆功能名称的表格.内置库具有各种命名约定.函数通常有前缀来表示它们的来源(但通常不是).函数通常放在类中以模拟命名空间.一个有点弱的类型系统(不要与动态类型混淆)
缩进用于标记块结构而不是花括号Retort:PHP花括号使其更容易使用HTML
一个小核心(语言或运行时?)
非常清晰,简洁和正交的语法
关键字参数(即,通过名称而不是按位置传递的参数)到函数和方法,轻松支持默认参数
反驳:PHP有默认参数
反驳:没有关键字参数,默认值就没用了
真正的面向对象和'第一类'类和函数Retort:OO已在PHP 5中完全改进
类在标准库中广泛使用Retort:PHP 5具有完全基于类的SPL
多重继承
优秀的内省
反驳:PHP 5反思
反驳:我们说了很好的反省
一切都是参考!(引用在PHP中很痛苦)
反驳:不是PHP 5
反驳:注意数组仍然按值传递(除非你添加一个显式的&)
反驳:你不会不小心修改它.
迭代器
结构化异常处理
反驳:在PHP 5中
反驳:PHP 5相当于别的什么,最后?
反驳2:遗憾的是,大多数标准PHP函数不使用异常来报告错误,这使得结构化异常处理的用处更少
'终于'在PHP 5.5运算符重载中实现了它
Retort:在PHP中,您可以使用runkit扩展来模拟相同的功能
反驳:"在PHP中你必须使用runkit扩展来模拟相同的功能"
穿线
"with ... as"声明处理需要可靠,简洁地关闭的资源
一个优秀的剖析师
Retort:XDebug,一个支持PHP4和PHP5的调试和分析扩展,是非常流行的大量高级数据类型(列表,元组,dicts,DateTimes,NumPy数组等)
反驳:PHP有SPL类型,它作为标准库包含在PHP5中
数组(列表)和关联数组(字典)之间的区别.
支持所有主要的GUI框架
强大的国际化和UNICODE支持
反驳:PHP 6将包括Unicode支持.这个功能在PHP5.2和PHP5.3中通过intl扩展提供,可以在pecl.php.net找到
Retort:PHP有Unicode的mbstring
往往会带来更具伸缩性的应用程序 - 导入模块比文本更安全,包括PHP中的代码:全局变量不用于交换信息.
与PHP(具有直接内置于核心语言的Web开发功能)不同,Python的Web开发功能由附加模块提供.基本的CGI功能由Python的标准库中的'cgi'模块提供.还有各种适用于Python的第三方模块; 一些是互补的,另一些是竞争.因此,Python为Web开发提供了更灵活的基础.
这种灵活性有一些不利的副作用.首先,选择范围可能令人困惑.除非您是经验丰富的Python Web开发人员,否则PHP更容易入门.其次,对共享托管公司的支持比支持各种Python选项更常见.
另一个区别是PHP嵌入在Web服务器中,而Python Web应用程序可以嵌入到Web服务器(如PHP)中,也可以在单独的进程中运行.这是Python Web开发平台的简单分类:
在Web服务器进程中展示Apache模块(例如mod_python)将Python解释器嵌入到Apache中,并允许其他Apache模块用Python编写.这与mod_perl的想法相同.PyWX是AOLServer的扩展,其功能与上面的Apache模块相同.MS ASP脚本可以通过Active Scripting Host使用Python编写.在一个单独的进程中运行非持久进程(为每个请求生成一个新进程)自定义CGI脚本持久进程(所有请求都从Web服务器发送到一个持久进程)自定义Fast-CGI脚本'应用程序服务器'(例如. Zope,Webware,SkunkWeb)
(注意:可以在PHP中编写一个运行时间很长的服务器,但是很少有例子.)
绝大多数Python Web应用程序都在一个单独的进程中运行.这有一些重要的含义.
在安全方面,PHP历史上有着可怕的历史.请参阅以下文章作为示例:http://old.lwn.net/2001/0704/a/study-in-scarlet.php3(注意:本文发布于10年前,不再适用于超过10年前有安全性的PHP历史概念).
PHP庞大的安装用户群,但这些数字可能因共享主机低信噪比而失真 - 因为PHP非常权宜,很多用户都没有投入技术(甚至是他们自己的代码)或社区Python规模庞大但不是很大,安装了用户群Python软件基金会许多专业兴趣小组的信噪比非常高
有关更多信息,请参阅CommercialServices页面.
小智 16
PHP是一种为Web而生成的语言.您可以使用PHP制作GTK和CLI应用程序,但它主要用于网站.Python用于很多东西,如网站,网络服务器,游戏框架,桌面和CLI应用程序,IDE等等.
语法也有很大差异.PHP的语法类似于C,带有花括号的循环和空格被忽略.Python没有大括号,而是代码块的缩进程度很重要.
这两种语言都很容易学习.这取决于你想做什么.
| 归档时间: |
|
| 查看次数: |
25785 次 |
| 最近记录: |