[TOC]

表达式

基本表达式

最基本的表达式形式是常量和变量。
当键入"$a = 5",即将值"5"分配给变量 $a。"5",很明显,其值为 5,换句话说"5"是一个值为 5 的表达式(在这里,"5"是一个整型常量)。

比较表达式

(大于),>=(大于等于),==(等于),!=(不等于),<(小于),<= (小于等于)

三元

$a = $a?$a:$c;

运算符

算术运算符

-$a     取反    $a 的负值。
$a + $b    加法    $a 和 $b 的和。
$a - $b    减法    $a 和 $b 的差。
$a * $b    乘法    $a 和 $b 的积。
$a / $b    除法    $a 除以 $b 的商。
$a % $b    取模    $a 除以 $b 的余数。
$a ** $b    Exponentiation    Result of raising $a to the $b'th power. Introduced in PHP 5.6.(求幂; 取幂)

赋值运算符

基本的赋值运算符

本的赋值运算符是"="。一开始可能会以为它是"等于",其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。


二元算术

引用赋值

位运算符

$a & $b    And(按位与)    将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b    Or(按位或)    将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $b    Xor(按位异或)    将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $a    Not(按位取反)    将 $a 中为 0 的位设为 1,反之亦然。
$a << $b    Shift left(左移)    将 $a 中的位向左移动 $b 次(每一次移动都表示"乘以 2")。
$a >> $b    Shift right(右移)    将 $a 中的位向右移动 $b 次(每一次移动都表示"除以 2")。

比较运算符

$a == $b    等于    TRUE,如果类型转换后 $a 等于 $b。
$a === $b    全等    TRUE,如果 $a 等于 $b,并且它们的类型也相同。
$a != $b    不等    TRUE,如果类型转换后 $a 不等于 $b。
$a <> $b    不等    TRUE,如果类型转换后 $a 不等于 $b。
$a !== $b    不全等    TRUE,如果 $a 不等于 $b,或者它们的类型不同。
$a < $b    小与    TRUE,如果 $a 严格小于 $b。
$a > $b    大于    TRUE,如果 $a 严格大于 $b。
$a <= $b    小于等于    TRUE,如果 $a 小于或者等于 $b。
$a >= $b    大于等于    TRUE,如果 $a 大于或者等于 $b。
$a <=> $b    结合比较运算符    当$a小于、等于、大于than $b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供.
$a ?? $b ?? $c    NULL 合并操作符    从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。

错误控制运算符@

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉

执行运算符

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符"`"的效果与函数 shell_exec() 相同。
反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。

递增/递减运算符

++$a    前加    $a 的值加一,然后返回 $a。
$a++    后加    返回 $a,然后将 $a 的值加一。
--$a    前减    $a 的值减一, 然后返回 $a。
$a--    后减    返回 $a,然后将 $a 的值减一。

逻辑运算符

$a and $b    And(逻辑与)    TRUE,如果 $a 和 $b 都为 TRUE。
$a or $b    Or(逻辑或)    TRUE,如果 $a 或 $b 任一为 TRUE。
$a xor $b    Xor(逻辑异或)    TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
! $a    Not(逻辑非)    TRUE,如果 $a 不为 TRUE。
$a && $b    And(逻辑与)    TRUE,如果 $a 和 $b 都为 TRUE。
$a || $b    Or(逻辑或)    TRUE,如果 $a 或 $b 任一为 TRUE。

字符串运算符

有两个字符串(string)运算符。
第一个是连接运算符("."),它返回其左右参数连接后的字符串。
第二个是连接赋值运算符(".="),它将右边参数附加到左边的参数之后。

数组运算符

    $a + $b    联合    $a 和 $b 的联合。
    $a == $b    相等    如果 $a 和 $b 具有相同的键/值对则为 TRUE。
    $a === $b    全等    如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
    $a != $b    不等    如果 $a 不等于 $b 则为 TRUE。
    $a <> $b    不等    如果 $a 不等于 $b 则为 TRUE。
    $a !== $b    不全等    如果 $a 不全等于 $b 则为 TRUE。

Explame 1#
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
$c = $a + $b; // Union of $a and $b
var_dump($c);

array(3) { ["a"]=> string(5) "apple" ["b"]=> string(6) "banana" ["c"]=> string(6) "cherry" }

类型运算符

instanceof

1.确定一个 PHP 变量是否属于某一类
2.确定一个变量是不是继承自某一父类的子类的实例

  1. 检查对象不是某个类的实例
  2. 确定一个变量是不是实现了某个接口的对象