PHP基础3:表达式和操作符

表达式

  • 定义
    表达式是可以通过求值来产生一个值的PHP代码块。
  • 示例
    最简单的表达式是字面量和变量。字面量的结果是其本身,而变量的值存储在变量中。使用简单的表达式和操作符,可以形成更复杂的表达式。

操作符

  • 定义
    操作符需要一定的值(操作数),然后进行某种操作(例如,将它们相加)。操作符的书写和标点符号一样,例如数学符号“+”和“-”。某些操作符修改其操作数,但大部分操作符不会这么做。
  • PHP操作符列表(P优先级,A结合性)
P A 操作符 操作
21 N clone, new 创建新对象
20 L [ 数组下标
19 R ~ 按位非
R ++ 自增1
R -- 自减1
R (int), (bool), (float), (string), (array), (object), (unset) 类型转换
R @ 错误屏蔽
18 N instanceof 类型测试
17 R ! 逻辑非
16 L * 乘法
L / 除法
L % 取模
15 L + 加法
L - 减法
L . 字符串连接
14 L << 按位左移一位
L >> 按位右移一位
13 N <, <= 小于,小于等于
N >, >= 大于,大于等于
12 N == 等于
N !=, <> 不等于
N === 类型和值相等
N !== 类型和值不相等
11 L & 按位与
10 L ^ 按位异或
9 L 竖线 按位或
8 L && 逻辑与
7 L 两竖杠 逻辑或
6 L ?: 条件操作
5 L = 赋值
L +=, =, *=, /=, .=, %=, &=, 竖线=, ^=, ~=, <<=, >>= 有操作的赋值
4 L and 逻辑与
3 L xor 逻辑异或
2 L or 逻辑或
1 L , 列表分隔符

操作符的数目

  • 一元操作符
    将一个简单的表达式转换成为一个更复杂的表达式。
  • 二元操作符
    将两个操作数(或表达式)组合成一个更复杂的表达式。
  • 三元操作符
    将三个表达式结合成一个。

操作符的优先级

  • 两条规则
    乘法和除法比加法和减法的优先级高。
    其他操作使用小括号()。

操作符的结合性

-定义
结合性定义了操作符具有相同优先级时计算的顺序。

隐式转换(类型戏法)

  • 定义
    许多操作符对操作数类型有要求。PHP的值会根据需要自动进行转换类型。
  • 二进制算数操作符的隐式类型转换规则
第一个操作数类型 第二个操作数类型 类型转换
整型 浮点型 整型转换为浮点型
整型 字符串 字符串转换成数字,如果字符串转换后是浮点型,整型也会转换成浮点型
浮点型 字符串 字符串转换成浮点型
  • 字符串连接操作符将两个操作数转换成字符串,然后再连接
3 . 2.74  // 获得字符串 32.74
  • 字符串转换为数字
    字符串以整数或浮点数开始,则转换为相应的整数或浮点数。
    未在字符串开始处发现任何数字,该字符串数值为0。
    字符串包含一个.或大写小写e,则转为浮点数。

算术操作符

加法 +
减法 -
乘法 *
除法 /
求模 %
算术负号 -
算术断言 +

字符串连接操作符

.

自动递增/自动递减操作符

++
--

可对字符串操作,例如把一个字母递增,它会成为下一个字母。如为z,则变为a,左边一个字符递增。

比较操作符

  • 比较操作符对应的不同的比较关系
第一个操作数 第二个操作数 比较关系
数字 数字 数字
数字字符串 数字字符串 数字
数字字符串 数字 数字
数字字符串 字符串 数字
字符串 数字 字典
字符串 字符串 字典
  • 数字字符串字典比较
strcmp()
  • 操作符
==
===
!=, <>
!==
>
>=
<
<=

位操作符

  • 定义
    位操作符作用于二进制表示的操作数上。操作数先转为二进制,再进行位操作,再转回原类型。
~
& //两个字符串,较长的尾部忽略
| //两个字符串,较短的后面0填补
^ //两个字符串,较长的尾部忽略
<<
>>

逻辑操作符

&&, and 
例:
$result = $flag and mysql_connect(); //条件为真才执行
 
||, or
例:
$result = fopen($filename) or exit(); //异常触发错误信息

xor //有且仅有一个true, 返回true
!
  • 短路处理(short-circuiting)
    &&前面为false,后面不执行。
    ||前面为true,后面不执行

类型转换操作符

  • 定义
    允许把变量强制转换为其他类型。
  • 列表
操作符 同义操作符 转换类型为
(int) (integer) 整型
(bool) (boolean) 布尔型
(float) (double),(real) 浮点型
(string) 字符串
(array) 数组
(object) 对象
(unset) NULL
  • 变量本身不变

  • 特殊转换结果
    数组转换成数字,结果为1。
    数组转字符串,结果array。
    对象与数组可互相转换。

赋值操作符

  • 赋值 =

  • +=,-=,*=,/=,%=,^=,&=,|=,.=

其他操作符

  • 屏蔽错误@
    屏蔽操作符或函数可能产生的错误信息。

  • 执行外部命令...
    执行shell命令,返回输出结果。

  • 条件选择 ? :
    条件选择符先执行?前面的表达式,如果结果为true,返回?与:之间的表达式的值,否则返回: 之后的表达式的值。

  • 类型 instanceof
    测试变量是否为给定类的示例化对象。

$a = new Foo;
$isAFoo = $a instanceof Foo; // true

你可能感兴趣的:(PHP基础3:表达式和操作符)