面向 C 开发人员的 PHP


将 PHP 视为可嵌入 HTML 文档的解释型 C 语言的最简单方法。该语言本身很像 C,除了无类型变量、内置大量特定于 Web 的库以及直接连接到您最喜欢的 Web 服务器的所有内容之外。

语句和函数定义的语法应该是熟悉的,除了变量总是前面有 $,并且函数不需要单独的原型。

这里我们就来说说PHP和C的一些异同

相似之处

  • 语法- 一般来说,PHP 语法与 C 中的语法相同:代码不区分空白,语句以分号终止,函数调用具有相同的结构 (my_function(表达式1, 表达式2)),大括号({ 和 })构成语句成块。PHP 支持 C 和 C++ 风格的注释(/* */ 以及 //),以及 Perl 和 shell 脚本风格 (#)。

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

  • 控制结构- 基本控制结构(if、switch、while、for)的Behave与 C 中的Behave相同,包括支持中断和继续。一个显着的区别是 PHP 中的 switch 可以接受字符串作为大小写标识符。

  • 函数名称- 当您仔细阅读文档时,您会看到许多函数名称看起来与 C 函数相同。

差异

  • 美元符号- 所有变量均以前导 $ 表示。变量不需要在赋值之前声明,并且它们没有内在类型。

  • 类型- PHP 只有两种数字类型:整数(对应于 C 中的 long)和双精度(对应于 C 中的 double)。字符串的长度是任意的。没有单独的字符类型。

  • 类型转换- 在编译时不会检查类型,并且类型错误通常也不会在运行时发生。相反,变量和值会根据需要自动进行类型转换。

  • 数组- 数组的语法表面上类似于 C 的数组语法,但它们的实现方式完全不同。它们实际上是关联数组或哈希,索引可以是数字或字符串。它们不需要提前声明或分配。

  • 无结构类型- PHP 中没有结构,部分原因是数组和对象类型一起使得结构变得不必要。PHP 数组的元素不需要具有一致的类型。

  • 无指针- PHP 中没有可用的指针,尽管无带变量起着类似的作用。PHP 确实支持变量引用。您还可以在某种程度上模拟函数指针,因为函数名称可以存储在变量中,并使用变量而不是文字名称来调用。

  • 无原型- 在定义函数的实现之前不需要声明函数,只要可以在当前代码文件或包含文件中的某个位置找到定义即可。

  • 内存管理- PHP 引擎实际上是一个垃圾收集环境(引用计数),并且在小脚本中不需要进行任何释放。您应该自由分配新结构 - 例如新字符串和对象实例。在PHP5中,可以为对象定义析构函数,但没有free或delete。当对对象的最后一个引用消失时,在回收内存之前,将调用析构函数。

  • 编译和链接- PHP 脚本没有单独的编译步骤。

  • 宽容性- 一般来说,PHP 比 C 更宽容(尤其是在其类型系统中),因此可以让您避免新类型的错误。意外结果比错误更常见。