PHP学习笔记——操作符

php中的操作符分为以下几大类:

算术操作符

跟其它编程语言类似,算术操作符包含加(+)、减(-)、乘(*)、除(/)、取模(%)这几个操作符,使用方法一样,没啥好说的。

字符串运算

字符串操作符只有一个:连接操作符(.),用来把两个字符串连接成一个字符串。

赋值操作符

最基本的赋值操作符(=)可谓是使用频率最高的操作符了吧。

PHP也支持组合赋值操作符:+=, -=, *=, /=, %=, .=。它们的含义和使用方法跟C语言中的一样,这里也就不再赘述。

还有自增(++)和自减(--)操作符,要注意它们在变量前和变量后的区别,含义和使用方法跟C语言中完全一致。

引用操作符

PHP中的引用操作符(&)类似于C语言中的指针,我们也可以把它理解为给变量起了一个新的别名。

通常我们把一个变量赋值给另一个变量,是对原始变量做了一份拷贝,之后对原始变量和目的变量的修改互不干扰。

如果在赋值时使用了引用操作符,那么相当于对原始变量起了一个别名,原变量和目标变量指向同一处内存区域,对其中一个修改都会反映到另一个上面。

例如下面的代码片段:

$a = 5;
$b = &$a;
$a = 7;

这时$a和$b相当于一个事物的两个名字,浑然一体。当$a的值修改为7时,相应的$b的值也为7。

可以使用unset操作来切断这种关联,比如对$a变量使用unset操作:

unset($a);

这时相当于$a这个别名被抹去了,不再存在,只剩下$b可用。

比较操作符

PHP中的比较操作符值得注意的就是=====的区别。==是判断是否相等的操作符,只要操作符两边的操作数值相等,那么就会判断为true;而===是判断是否完全相同的操作符,两边的操作数不但值要相等,类型也要相同,才会返回true。

例如下面的代码:

$a = 0;
$b = "0";
printf("%d\n", $a == $b);
printf("%d\n", $a === $b);

这里$a == $b就返回true,而$a === $b就返回false,因为$a和$b的类型不一致。

同样,对判断不相等(!=)和判断不相同(!==)的这两个操作符的理解也是一样。

其它的比较操作符的含义和使用跟其它编程语言中类似,不再多说。

逻辑操作符

PHP中的逻辑操作符包含NOT(!)、AND(&&)、OR(||)、低优先级AND(and)、低优先级OR(or)、XOR(xor),含义和用法跟其它编程语言没有什么区别,值得注意的就是另外提供了两个低优先级的逻辑操作符: andor

位操作符

PHP中也提供了位操作符,但跟C语言相比,可能使用的机会不是很多。

包含位AND(&)、位OR(|)、位NOT(~)、位XOR(^)、左移(<<)、右移(>>)这些操作符。

其它操作符

逗号操作符

逗号操作符(,)用来分割函数的参数和其它一些列表元素。

对象操作符

新建对象操作符(new)用来实例化类,新建一个对象。

对象成员引用操作符(->)用来访问一个类对象的成员。

三元操作符

唯一的一个三元操作符:?:,含义和使用跟C语言中一模一样,不再赘述。

错误抑制操作符

PHP中有一个特殊的操作符@,可以用在任何表达式的前面,用来抑制错误的产生。

例如:

$a = 10 / 0;

这里有一个明显的错误:除数为0,执行时会显示一条警告错误。

但如果前面使用了@操作符:

$a = @(10/0);

这个错误就会被压制,不再输出警告信息。但这样做,有点掩耳盗铃的味道,所以,当你抑制一个错误发生时,应该添加一些错误处理代码来优雅地处理这种情况。

如果在配置文件php.ini中开启了track_errors选项,那么经过@操作符压制的错误信息会存储在全局变量$php_errormsg中,可以通过检查该变量来判断是不是有错误产生了。

执行操作符

当我们尝试在PHP中执行一个外部的命令行程序时,就可以使用执行操作符(``)来进行,如下:

$out = `ls -la`;
echo $out;

命令执行的输出结果返回给变量$out。

数组相关操作符

对于数组操作,除了常规的数组元素操作符[]外,还提供了如下一些针对数组的操作符:

  • 联合操作符(+): 用来把两个数组的元素合并成一个数组。

  • 判断两个数组是否相等的操作符(==): 用来比较两个数组是否含有相同的元素。

  • 判断两个数组是否完全相同的操作符(===): 用来比较两个数组是否含有相同的元素并且元素的顺序相同。

  • 判断两个数组是否不相等的操作符(!=<>)

  • 判断两个数组是否不相同的操作符(!==): 如果两个数组元素相同但顺序不同,也返回true

类型操作符

PHP提供了一个类型判断操作符:instanceof,用来检查一个对象是否是一个类的实例,只能用于对象变量。

例如下面代码片段:

class SampleClass{};
$myOjbect = new SampleClass();
if ($myOjbect instanceof SampleClass) 
{
    echo "myObject is a instance of SampleClass";
}

你可能感兴趣的:(PHP学习笔记——操作符)