Php 简明教程

PHP For PERL Developers

PERL 是一种动态类型、高级且通用的编程语言。通常认为 PERL 是实用抽取和报告语言的缩写。而 PHP 也是一种通用脚本语言。最初 PHP 曾是“个人主页”的缩写,但如今它已被公认为一个递归缩写“PHP:超文本预处理器”。

本章节概述了 PHP 与 Perl 之间的主要相似性和差异。这将帮助 Perl 开发人员非常快速地了解 PHP 并避免常见错误。

Similarities between PERL and PHP

Perl 和 PHP 均为脚本语言。它们不用于提前在执行之前构建本机独立可执行文件。

早期的 PHP 版本受到 Perl 的启发。PHP 的基本语法与 Perl 非常相似。两者都与 C 共享许多语法特性。它们的代码对空白不敏感,每条语句都以分号结尾。

PHP 和 Perl 都使用大括号将多个语句组织成一个单一代码块。函数调用以函数名开头,后跟用括号括起来并用逗号分隔的实际参数,在两种情况下都一样。

  1. PHP 中的所有变量看起来都像 Perl 中的标量变量:一个带有美元符号 ($) 前缀的名称。

  2. 由于这两种语言都是动态类型的,因此你无需在使用 PHP 和 Perl 变量之前声明其类型。

  3. 在 PHP 中,和 Perl 一样,变量除了当前持有的值之外没有固有类型。你可以在同一类型变量中存储数字或字符串。

  4. PHP 和 Perl 对双引号字符串("string")的解释比单引号字符串('string')更多。

Differences between PERL and PHP

PHP 可以嵌入 HTML 中。虽然可以从命令行运行 PHP 脚本,但它更常用作 Web 服务器上的服务器端脚本语言,并用于生成网页。

如果你习惯了用 Perl 编写 CGI 脚本,则 PHP 中的主要区别在于你不再需要使用 print 或 heredoc 语句显式打印大块静态 HTML,而只需在 PHP 代码块之外编写 HTML 本身。

No @ or % variables − PHP 仅有一种变量,它以美元符号 ($) 开头。该语言中的任何数据类型都可以存储在(标量或复合)这些变量中。在 Perl 中,数组变量以 @ 符号为前缀。此外,哈希变量以 % 符号为前缀。

与 Perl 不同,PHP 有一种称为数组的单一数据类型,该类型可以是 indexed arrayassociative array ,与 hash in PERL 类似。

Function calls in PHP 看起来很像 subroutine calls in PERL 。另一方面,PHP 中的函数定义通常需要某种形式的正式参数列表,就像 C 或 Java 中一样,这与 Perl 不同。

Perl 中的 Scope of variables 默认情况下是全局的。这意味着顶级变量在子例程中是可见的。通常,这会导致在函数中滥用全局变量。在 PHP 中,函数定义中变量的范围默认情况下是局部的。

PHP 中的 No module system 亦是如此。在 PHP 中,普通代码文件与用作导入库的代码文件之间没有真正区别。

Break and continue 而不是 next and last − PHP 更像是 C 语言,并且使用 break 和 continue,而不是像 Perl 中的 next 和 last 语句。

No elsif − 一个次要拼写差异:Perl 的 elsif 是 PHP 的 elseif。

除了 Perl 样式 (#) single-line comments 之外,PHP 还提供 C 样式 multiline comments (/* comment */)和 Java 样式单行注释(// comment)。

Regular expressions − PHP 没有针对正则表达式特定于内置语法,但在其“Perl 兼容”正则表达式函数中具有相同的大部分功能。