适用于C开发人员的PHP

最简单的思考PHP的方法是解释C,你可以嵌入HTML文档中.语言本身很像C,除了非类型变量,内置了大量特定于Web的库,并且所有内容都直接连接到您喜欢的Web服务器.

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

这里我们将在PHP和C中加入一些相似之处和差异

相似之处

  • 语法 : 从广义上讲,PHP语法与C中的相同:代码是空白不敏感的,语句以分号结束,函数调用具有相同的结构(my_function(expression1,expression2)),花括号({和})使语句成为块. PHP支持C和C ++样式的注释(/* */以及//),以及Perl和shell脚本样式(#).

  • 运营商 : 赋值运算符(=,+ =,* =等),布尔运算符(&&,||,!),比较运算符(<,>,< =,> =, ==,!=),基本的算术运算符(+, - ,*,/,%)都在PHP中表现,就像在C中一样.

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

  • 函数名称 : 当您仔细阅读文档时,您将看到许多看起来与C函数相同的函数名.

差异

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

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

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

  • 数组 : 数组的语法表面上类似于C的数组语法,但它们的实现完全不同.它们实际上是关联数组或散列,索引可以是数字或字符串.它们不需要提前申报或分配.

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

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

  • 没有原型 : 只要可以在当前代码文件或包含文件中的某处找到定义,就不需要在定义实现之前声明函数.

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

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

  • Permissiveness : 一般来说,PHP比C更宽容(特别是在它的类型系统中),因此可以让你摆脱新的错误.意外结果比错误更常见.