定义:运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。
一、运算符分类
分类方式 | 运算符 | 详细 | 备注 |
---|---|---|---|
按操作数数量 | 一元运算符 | ! 、++、-- | 自增和自减不能用于字面量,只能用于变量 |
二元运算符 | 20±30、20*30、20/30 | ||
三元运算符 | ture?"真":"假" | ||
按运算符用途 | 算术运算符 | 加、减、乘、除、取模等 | echo 12+3; // 15 |
字符串运算符 | 点 | 可用于连接字符串和变量 | |
赋值运算符 | 等号以及算术运算符的组合,=,+=,-=,*=,/=,%=... | $num ±= 10 等价与 $num = $num ± 10 $num *= 10 等价与 $num = $num * 10 $num /= 10 等价与 $num = $num / 10 $num %= 10 等价与 $num = $num % 10 | |
比较运算符(关系运算符) | 比大小,结果为布尔值,>,<,= | ||
逻辑运算符 | 判断对错,布尔值之间对比, &&,||,! |
<?php
// 比较运算符
var_dump(15>2); // bool(true)
echo '<hr>';
var_dump('php'=='php'); // bool(true)
echo '<hr>';
var_dump('100'==100); // bool(true)
// 相等号只进行值的比较,不进行类型的比较,switch的比较也是值的比较;
// 而全等号不仅进行值的比较而且进行类型比较
echo '<hr>';
var_dump('100'===100); // bool(false)
echo '<hr>';
var_dump(30<>100); // bool(true)
echo '<hr>';
var_dump('30'<>30); // bool(false),<>进行值比较
echo '<hr>';
var_dump('30'!==30); // bool(true),!==进行值和类型比较
// 逻辑运算符
// 逻辑与、逻辑或、逻辑非
echo '<hr>';
var_dump( (14==13) && (12>1) ); // bool(false) 当 && 两边的值都为真时,整体的值为真
echo '<hr>';
var_dump( (14==13) || (12>1) ); // bool(true) 当 || 两边的值都为假时,整体的值为假
echo '<hr>';
var_dump( !true ); // bool(false)
echo '<hr>';echo '<hr>';
// 请注意:
// 当&&的第一个操作数为假时,不进行第二个操作数的判定
// 当||的第一个操作数为真时,不进行第二个操作数的判定
function selfAdd($num){
$num+=10;
echo '<hr>'.$num.'<hr>';
return $num;
}
var_dump( false && selfAdd(1) ); // bool(false)
var_dump( true && selfAdd(2) ); // 12 bool(true)
// 以上例子当&&第一个操作数为真时,执行了打印操作,说明第一个操作数为假时,不执行函数selfAdd
var_dump( false || selfAdd(1) ); // 11 bool(true)
var_dump( true || selfAdd(2) ); // bool(true)
// 以上例子当||第一个操作数为假时,执行了打印操作,说明第一个操作数为真时,不执行函数selfAdd
?>
二、表达式
定义:凡是可以返回一个具体值的东西都可以叫表达式。