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

2024-10-31 14:59:19
推荐回答(5个)
回答1:

相同点: 都是动态类型的解释型高级脚本语言。

不同点既各自优缺点:
PHP名称的含义是“超文本预处理器”。
仅则一个名称就说明了PHP的着重点,也是长处
1、文本处理。text,意味擅长所有的文本处理
2、超文本处理,HyperText,意味尤其擅长HTML超文本标记语言的文本处理。
3、超文本预处理,HyperText Preprocessor,一个“预”字,意味擅长HTTP超文本传输协议之上的服务端上的所有应用的处理。
也就是说,PHP有个互联网专门化的方向,现在专门化也是所有行业的趋势。

Python比较通用,就是什么都能干一点。能做WEB相关的但没有php那么专门化和无微不至。
语法简洁,由于为了通用,python的数据结构工具也比较轻量级一点,实现复杂算法的资源开销比PHP稍低,裸运行的速度也比php稍快。但在网络应用上,这点速度差距在网络IO面前都可以忽略不计。 python作为通用脚本,也广泛被嵌入/捆绑入一些3D工具、绘图工具、数学工具、游戏中作为高级流程部分的描述。

语法方面,PHP的语法属于C系,继承了C++和Java的很多历史优点。
Python的语法,吸收了一些现代语言元素,比如靠缩进决定层次、lambda表达式,数列产生器,一级函数对象。

2个都值得学习掌握!

回答2:

语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。Python 相比之下要好一点,但是 Python2 和 Python3 直接存在着一些不兼容的语法变动。

编写 HTML 模版:PHP 可以非常方便地直接用来编写 HTML 模版,Python 需要借助其他的语言或库来实现。

包管理器:PHP 的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python 有统一的包管理器,虽然也有问题,但要比 PHP 好得多,引入库之后的命名空间管理也要比 PHP 好。

扩展和库:PHP 和 Python 都可以用 C 来编写扩展。相比之下 Python 可用的库要更多一点。

运行方式:PHP 运行方式比较单一(php-fpm, mod_php), Python 则可以以 fastCGI 运行,也可以自行监听端口来处理请求。

性能:因为 PHP 运行方式单一,opcode 缓存方案也比较成熟(APC, opcache),缓存 opcode 之后运行速度很快。Python 则可能需要更多地自行优化性能。

类型系统:PHP 和 Python 都是动态类型。PHP 对类型判别比较模糊,有很多陷阱,Python 则严格一些。

学习成本:PHP 和学习成本都不是很高。PHP 优势在于有比较完整的官方中文文档,而且 PHP 应用领域只有 Web, 所以需要学习的内容较少。Python 因为学习路线较多,不太容易找到适合自己的教程和资料。

社区:PHP 的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python 则要好一点。

应用领域:PHP 仅在 Web 后端方面被使用,Python 应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面), Python 要方便一点。

回答3:

输出、数据类型、访问权限、定义变量和方法不同

1、输出

Python: print  默认换行,不换行要加逗号。

PHP: echo 可以输出多个变量;print ()只输出一个变量,且成功返回值为1,失败为0;print_r() 只输出数组;die() 先输出,后关机;printf() 格式化输出字符串;var_dump()可以判断一个变量的类型与长度,并输出变量的数。

2、数据类型

PHP:七个数据类型:String,Integer,Float,Boolean,Array,Object,NULL

Python:五个标准的数据类型:Number,String,List,Tuple,Dictionary 其中包括Numberint,long,float,complex

3、访问权限

PHP:三种访问权限,由高到低为public,protected,private

Python: _foo代表不能直接访问的类属性,需要通过类提供的接口访问;__foo代表类的私有成员;__foo__特殊方法专用的标识

4、定义变量和方法

PHP: 弱类型语言,用$定义变量,一般情况下变量引用变量时也要带着$(区别于Java), 在类中定义变量时还要加var ,定义方法时 function test (){} 要用function声明。

Python:弱类型语言,定义变量时直接写,除了访问权限修饰符不需要加别的。定义方法时 def __init__(self,name):  要用def声明,self是必须要加的常量,代表该类的对象,方法体不用{}。

回答4:

PYTHON,PHP都为脚本语言,不用编译可直接运行。PYTHON完全面向对像的,写程序的时候,基本都是类的应用。而PHP有部分类,但比较多面向过程的。PYTHON写桌面程序还可以,PHP基本不行。

回答5:

这个用途都不一样,怎么比较php是动态网页脚本. python是通用的脚本.