1.10.7 其他操作符
到目前为止,除了我们已经介绍的操作符外,PHP还有一些其他操作符。
逗号操作符“,”是用来分隔函数参数和其他列表项的,这个操作符经常被附带地(非独立)使用。
两个特殊的操作符new和->,它们分别用来初始化类的实例和访问类的成员。它们将在第6章详细介绍。
此外,还有一些操作符,我们在这里简单地介绍一下。
1.三元操作符
操作符?:语法格式如下所示:
condition?value if true:value if false
三元操作符类似于条件语句if-else的表达式版本,这一点我们将在本章后续内容详细介绍。
举一个简单的例子:
($grade>=50?'Passed':'Failed')
这个表达式对学生级别进行评分,“Passed(及格)”或“Failed(不及格)”。
2.错误抑制操作符
错误抑制操作符@可以在任何表达式前面使用,即任何有值的或者可以计算出值的表达式之前,例如:
$a=@(57/0);
如果没有@操作符,这一行代码将产生一个除0警告。使用这个操作符,这个警告就会被抑制住。
如果通过这种方法抑制了一些警告,一旦遇到一个警告,你就要写一些错误处理代码。
如果已经启用了PHP配置文件中的track_errors特性,错误信息将会被保存在全局变量$php_errormsg中。
3.执行操作符
执行操作符实际上是一对操作符,它是一对反向单引号()。反向引号不是一个单引号,通常,它与~位于键盘的相同位置。
PHP将试着将反向单引号之间的命令当作服务器端的命令行来执行。表达式的值就是命令的执行结果。例如,在类似于UNIX的操作系统中,可以使用:
$out=ls-la;
echo'<pre>'.$out.'</pre>';
在Windows服务器上,可以使用:
$out=dir c:;
echo'<pre>'.$out.'</pre>';
这两种版本都会得到一个目录列表并且将该列表保存在$out中,然后,再将该列表显示在浏览器中或用其他方法来处理。
此外,还有其他方法可以执行服务器端的命令。我们将在第19章中详细介绍。
4.数组操作符
PHP提供了一些数组操作符。数组元素操作符([])允许访问数组元素。在某些数组上下文中,也可以使用=>操作符。这些操作将在第3章详细介绍。
也可以使用许多其他数组操作符。我们会在第3章详细介绍它们,但是这里在表1-6中给出完整列表。
你将注意到,表1-6给出的数组操作符都有作用在标量变量上的等价操作符。只要你记得+执行了标量类型的加操作和数组的联合操作——即使你对其行为后面使用的实现算法不感兴趣——该行为也是有意义的。你不能将标量类型与数组进行比较。
5.类型操作符
只有一个类型操作符:instanceof。这个操作在面向对象编程中使用,但是出于完整性方面的考虑,我们在这里也给出它(面向对象编程将在第6章详细介绍)。
instanceof操作符允许检查一个对象是否是特定类的实例,如下例所示:
class sampleClass{};
$myObject=new sampleClass();
if($myObject instanceof sampleClass)
echo"myObject is an instance of sampleClass";