错误控制运算符
@:放在一个表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
目前的"@“错误控制运算符前缀甚至使导致脚本终止的严重错误的错误报告也失效。这意味着如果在某个不存在或者敲错了字母的函数调用前用了”@"来抑制错误信息,那脚本会没有任何迹象显示原因而死在那里。
执行运算符
``:这是一个执行运算符,PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回。与shell_exec()是相同的。
- 反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。
- 与其它某些语言不同,反引号不能在双引号字符串中使用。
逻辑运算符
php中的逻辑运算符有:and、or、xor、!、&&、||。
- "与"和"或"有两种不同形式运算符的原因是它们运算的优先级不同;
字符串运算符
- .
- .=
就这两个字符串运算符
数组运算符
-
- ==
- ===
- !=
- <>
- !==
类型运算符
instanceof
- instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例;
- instanceof 也可用来确定一个变量是不是继承自某一父类的子类的实例;
- 检查一个对象是否不是某个类的实例,可以使用逻辑运算符 not;
- instanceof也可用于确定一个变量是不是实现了某个接口的对象的实例;
- 虽然 instanceof 通常直接与类名一起使用,但也可以使用对象或字符串变量,如果被检测的变量不是对象,instanceof 并不发出任何错误信息而是返回 FALSE。不允许用来检测常量;
- 然而 instanceof 的使用还有一些陷阱必须了解。在 PHP 5.1.0 之前,如果要检查的类名称不存在,instanceof 会调用 __autoload()。另外,如果该类没有被装载则会产生一个致命错误。可以通过使用动态类引用或用一个包含类名的字符串变量来避开这种问题
流程控制
任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。
替代语法
- php提供了一些流程控制的替代语法,基本形式是把左花括号换成冒号,把右花括号换成endif、endwhile等;
- 不支持在同一个控制块中混合使用两种语法;
- 替代语法中的switch 和第一个 case 之间的任何输出(含空格)将导致语法错误;
do-while
- 和while的区别在于保证能执行一次。
- 将代码放在do-while(0)中,然后用break跳出循环,可以用来优化执行流程;