PHP适用于PERL开发人员


本章将列出PHP和PERL之间的主要相似点和差异。这将帮助PERL开发人员快速了解PHP并避免常见错误。

相似

  • 编译脚本语言 - Perl和PHP都是脚本语言。这意味着它们不用于在执行之前生成本机独立可执行文件。

  • 语法 - PHP的基本语法与Perl非常接近,并且与C语言共享许多语法特征。代码对空白不敏感,语句以分号结尾,大括号将多个语句组织成一个块。 函数调用从函数的名称开始,然后是用括号括起来的实际参数,并用逗号分隔。

  • 美元符号变量 - PHP中的所有变量看起来都像Perl中的标量变量:前面带有美元符号($)的名称。

  • 没有变量声明 - 和Perl一样,你不需要在使用它之前声明一个PHP变量的类型。

  • 变量的松散输入 - 与Perl中一样,PHP中的变量除了当前拥有的值之外没有其他内在类型。 您可以将数字或字符串存储在相同类型的变量中。

  • 字符串和变量插值 - PHP和Perl对单引号字符串(“字符串”)的解释比双引号字符串(“字符串”)更多。

差异

  • PHP是HTML嵌入式的 - 虽然可以通过从命令行运行PHP来执行任意任务,但它通常连接到Web服务器并用于生成Web页面。 如果您习惯在Perl中编写CGI脚本,则PHP的主要区别在于您不再需要使用print或heredoc语句显式地打印大块静态HTML,而是可以简单地将HTML本身写在PHP代码块之外。

  • 没有@或%变量 - PHP只有一种变量,以美元符号($)开头。 语言中的任何数据类型都可以存储在这些变量中,无论是标量还是复合。

  • 数组与哈希 - PHP有一个称为数组的数据类型,它在Perl中扮演着哈希和数组/列表的角色。

  • 为函数指定参数 - PHP中的函数调用与Perl中的子例程调用非常相似。 另一方面,PHP中的函数定义通常需要某种类型的形式参数列表,如C或Java中的,而不是PERL中的csse。

  • 函数中的变量范围 - 在Perl中,变量的默认范围是全局变量。 这意味着顶级变量在子例程中可见。通常情况下,这会导致混合使用全局函数。在PHP中,函数定义中的变量范围默认为本地。

  • 没有模块系统 - 在PHP中,正常代码文件和用作导入库的代码文件之间没有真正的区别。

  • 打破并继续,而不是下一个和最后一个 - PHP更像C语言,并使用break和continue而不是next和last语句。

  • No elsif - 一个小的拼写差异:Perl的elsif是PHP的elseif。

  • 更多种类的注释 - 除了Perl风格(#)单行注释外,PHP还提供C风格的多行注释(/ comment /)和Java风格的单行注释(//注释)。

  • 正则表达式 - PHP没有特定于正则表达式的内置语法,但其“Perl兼容”正则表达式函数具有大部分相同的功能。