📅  最后修改于: 2020-10-21 05:17:33             🧑  作者: Mango
本章将列出PHP和PERL之间的主要异同。这将帮助PERL开发人员非常快速地理解PHP,并避免常见错误。
编译的脚本语言-Perl和PHP都是脚本语言。这意味着它们不用于在执行之前生成本机独立可执行文件。
语法-PHP的基本语法与Perl的语法非常接近,并且两者都与C共享许多语法功能。代码对空格不敏感,语句以分号终止,花括号将多个语句组织到一个块中。函数调用以函数名称开头,后跟括号中的实际参数,并用逗号分隔。
美元符号变量-PHP中的所有变量看起来像Perl中的标量变量:在其前面带有美元符号($)的名称。
不声明变量-和Perl一样,在使用PHP变量之前,无需声明其类型。
变量的松散输入-与Perl中一样,PHP中的变量除了当前持有的值外没有其他固有类型。您可以将数字或字符串存储在相同类型的变量中。
字符串和变量插值-PHP和Perl对双引号字符串(“字符串”)的解释比对单引号字符串(’ 字符串’)的解释更多。
PHP已嵌入HTML-尽管可以通过从命令行运行PHP来将PHP用于任意任务,但通常将其连接到Web服务器并用于生成Web页面。如果您习惯于用Perl编写CGI脚本,则PHP的主要区别是您不再需要使用print或heredoc语句显式打印大型静态HTML块,而只需在PHP代码块之外简单地编写HTML即可。
没有@或%变量-PHP只有一种变量,以美元符号($)开头。语言中的任何数据类型都可以存储在此类变量中,无论是标量还是复合变量。
数组与散列-PHP具有一个称为数组的单一数据类型,该数据类型在Perl中扮演散列和数组/列表的角色。
为函数指定参数-PHP中的函数调用与Perl中的子例程调用非常相似。另一方面,PHP中的函数定义通常需要某种形式的形式参数列表,如C或Java中那样,而不是PERL中的csse。
函数中的变量作用域-在Perl中,变量的默认范围是全局的。这意味着顶级变量在子例程中可见。通常,这会导致在函数之间混杂使用全局变量。在PHP中,默认情况下,函数定义中的变量范围是局部的。
没有这样的模块系统-在PHP中,普通代码文件和用作导入库的代码文件之间没有真正的区别。
Break and Continue而不是next and last -PHP更像C语言,使用break and continue代替next和last语句。
No elsif-拼写差异很小:Perl的elsif是PHP的elseif。
更多类型的注释-除了Perl样式(#)单行注释之外,PHP还提供C样式多行注释(/ * comment * /)和Java样式单行注释(// comment)。
正则表达式-PHP没有特定于正则表达式的内置语法,但是在其“与Perl兼容”的正则表达式函数中具有大多数相同的功能。