如果您事先了解 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 可以接受字符串作为大小写标识符。
PHP 还具有遍历数组等集合的 foreach 循环结构。
函数名称 − 当您仔细阅读文档时,您会看到许多看起来与 C 函数相同的函数名称。
C 和 PHP 之间的区别
美元符号 − 所有变量名称都以前导 $ 为前缀。变量不需要在赋值之前声明,并且它们没有内部类型。PHP 是一种动态类型语言,而 C 是一种静态类型语言。
类型 − PHP 只有两种数字类型:integer(对应于 C 语言中的 long)和 double(对应于 C 语言中的 double)。在 PHP 中,float 是 double 的同义词。字符串的长度是任意的。PHP 中没有单独的 char 类型,就像在 C 中一样。
类型转换 − C 是一种强类型语言,因为变量的类型必须在使用前声明,并且在编译时检查类型。另一方面,PHP 是一种弱类型语言,在编译时不检查类型,并且类型错误通常也不会在运行时发生。相反,变量和值会根据需要自动跨类型转换。
数组 − 数组的语法表面上类似于 C 的数组语法,但它们的实现方式完全不同。在 C 语言中,数组是相似数据类型的集合。在 PHP 数组中,项可以是不同的类型。PHP 数组实际上是关联数组或哈希,索引可以是数字或字符串。它们不需要提前申报或分配。
无结构类型 − C 中的 struct 关键字用于定义新的数据类型。在 PHP 中没有 struct 关键字或其等效关键字,部分原因是数组和对象类型一起使它变得不必要。PHP 数组的元素不必是一致的类型。
无指针 − 指针是 C 语言中的一个重要概念。PHP 中没有可用的指针,尽管 tapeless 变量起着类似的作用。与 C 语言不同,PHP 支持变量引用。您还可以在一定程度上模拟函数指针,因为函数名称可以存储在变量中,并使用变量而不是文本名称进行调用。
无原型 − 在定义函数的实现之前不需要声明函数,只要可以在当前代码文件或包含文件的某个位置找到定义即可。相反,C 函数必须在使用之前定义。
没有 main() − 在 C 程序中,main() 函数是入口点,无论它存在于代码中的哪个位置。另一方面,PHP 程序从脚本中的第一个语句开始执行
内存管理 − PHP 引擎实际上是一个垃圾回收环境(引用计数),在小脚本中不需要做任何释放。您应该自由分配新的结构 - 例如新字符串和对象实例。在 PHP5 中,可以为对象定义析构函数,但没有像 C/C++ 中那样的 free 或 delete 关键字。当对对象的最后一个引用消失时,在回收内存之前,将调用析构函数。
编译和链接 − PHP 是一种解释型语言。因此,不会创建 PHP 脚本的编译版本。首先编译 C 程序以获取目标代码,然后将其链接到所需的库以构建可执行文件。PHP 脚本没有单独的编译步骤。PHP 脚本不能转换为自可执行文件。
宽容 − 一般来说,PHP 比 C 更宽容(尤其是在其类型系统中),因此可以让你摆脱新的错误。意外结果比错误更常见。