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.10.7 其他操作符 - 图1

你将注意到,表1-6给出的数组操作符都有作用在标量变量上的等价操作符。只要你记得+执行了标量类型的加操作和数组的联合操作——即使你对其行为后面使用的实现算法不感兴趣——该行为也是有意义的。你不能将标量类型与数组进行比较。

5.类型操作符

只有一个类型操作符:instanceof。这个操作在面向对象编程中使用,但是出于完整性方面的考虑,我们在这里也给出它(面向对象编程将在第6章详细介绍)。

instanceof操作符允许检查一个对象是否是特定类的实例,如下例所示:


class sampleClass{};

$myObject=new sampleClass();

if($myObject instanceof sampleClass)

echo"myObject is an instance of sampleClass";