PHP 适用于 C 语言开发者



如果您之前了解 C 编程,学习 PHP 会变得容易得多,特别是基础知识。虽然 PHP 非常类似于 C,但它捆绑了一整套特定于 Web 的库,所有内容都直接连接到您最喜欢的 Web 服务器。

最简单的理解 PHP 的方式是将其视为可以嵌入 HTML 文档中的解释型 C 语言。PHP 脚本也可以像 C 程序一样从命令行执行。

语句和函数定义的语法应该很熟悉,除了变量总是以 $ 开头,函数不需要单独的原型。

让我们看看 PHP 和 C 中的一些异同点 -

C 和 PHP 之间的相似之处

语法 - 广义上讲,PHP 语法与 C 中的相同,如果您已经熟悉 C,这使得学习 PHP 变得更容易。

与 C 类似,PHP 代码不区分空格,语句以分号结尾。

函数调用具有相同的结构

my_function(expression1, expression2) {
   Statements;
}

花括号用于将多个语句放入代码块中。

PHP 支持 C 和 C++ 样式的注释(/* */ 以及 //),以及 Perl 和 shell 脚本样式的注释 (#)。

运算符 - 赋值运算符(=,+=,*= 等),布尔运算符(&&,||,!),比较运算符(<,>,<=,>=,==,!=)和基本的算术运算符(+,-,*,/,%)在 PHP 中的行为与在 C 中相同。

控制结构 - 基本的控制结构(if,switch,while,for)的行为与在 C 中相同,包括支持 break 和 continue。一个值得注意的区别是 PHP 中的 switch 可以接受字符串作为 case 标识符。

PHP 还具有 foreach 循环结构,它遍历数组等集合。

函数名称 - 当您阅读文档时,您会看到许多似乎与 C 函数相同的函数名称。

C 和 PHP 之间的区别

美元符号 - 所有变量名称都以一个前导 $ 为前缀。变量不需要在赋值之前声明,并且它们没有内在类型。PHP 是一种动态类型语言,而 C 是一种静态类型语言。

类型 - PHP 只有两种数值类型:整数(对应于 C 中的长整型)和双精度浮点数(对应于 C 中的双精度浮点数)。在 PHP 中,float 等同于 double。字符串的长度是任意的。PHP 中没有单独的 char 类型,就像 C 中那样。

类型转换 - C 是一种强类型语言,因为变量的类型必须在使用前声明,并且类型在编译时进行检查。另一方面,PHP 是一种弱类型语言,类型在编译时不进行检查,并且类型错误通常也不会在运行时发生。相反,变量和值会在需要时自动跨类型转换。

数组 - 数组的语法表面上类似于 C 的数组语法,但它们的实现完全不同。在 C 中,数组是相同数据类型的集合。在 PHP 数组中,项目可以是不同类型。PHP 数组实际上是关联数组或哈希表,索引可以是数字或字符串。它们不需要预先声明或分配。

没有 Struct 类型 - C 中的 struct 关键字用于定义新的数据类型。PHP 中没有 struct 关键字或其等价物,部分原因是数组和对象类型一起使它变得不必要。PHP 数组的元素不必具有一致的类型。

没有指针 - 指针是 C 中的一个重要概念。PHP 中没有指针可用,尽管无类型的变量发挥着类似的作用。与 C 不同,PHP 支持变量引用。您也可以在某种程度上模拟函数指针,因为函数名称可以存储在变量中,并通过使用变量而不是文字名称来调用。

没有原型 - 函数不需要在定义其实现之前声明,只要定义可以在当前代码文件或包含文件中找到即可。相反,C 函数必须在使用前定义。

没有 main() - 在 C 程序中,main() 函数是入口点,无论它在代码中的哪个位置。另一方面,PHP 程序从脚本中的第一个语句开始执行

内存管理 - PHP 引擎实际上是一个垃圾回收环境(引用计数),在小型脚本中,不需要进行任何释放操作。您可以随意分配新的结构 - 例如新的字符串和对象实例。在 PHP5 中,可以为对象定义析构函数,但没有像 C/C++ 中那样的 free 或 delete 关键字。当最后一个对对象的引用消失之前,在内存被回收之前,会调用析构函数。

编译和链接 − PHP 是一种解释型语言。因此,不会创建 PHP 脚本的编译版本。C 程序首先被编译以获得目标代码,然后将其链接到所需的库以构建可执行文件。PHP 脚本没有单独的编译步骤。PHP 脚本无法转换为自执行文件。

宽容性 − 总体而言,PHP 比 C(尤其是在其类型系统方面)更宽容,因此允许您犯各种新的错误。意外结果比错误更常见。

广告