批改状态:合格
老师批语:案例有点少了, 还是要多做练习
基本的加、减、乘、除、取模、求幂。
$a = 7;$b = 3;--------------------echo $a + $b; // 7 + 3 = 10echo $a - $b; // 7 - 3 = 4echo $a * $b; // 7 * 3 = 21echo $a / $b; // 7 / 3 = 2.3333333333333echo $a % $b; // 7 / 3 = 2 余 1echo $a ** $b; // 7 的 3 次方 = 343(自 php5.6 )
根据符号位置不同,选择先加减还是先返回值。符号在前先加减再返回值,反之亦然。
$x++, ++$x, $x--, --$x$x = 5;echo $x++; // 5echo $x; // 6echo ++$x; // 7 上一步 $x = 6,这里先赋值再返回,所以是 7echo $x; // 7
老师讲了一个 “ . ” 连接运算符,返回左右参数连接后的字符串。
官方手册中把 “ .= ” 称为连接赋值运算符,功能是将右边参数附加到左边参数之后。
$x = 1;$y = 2;var_dump($x . $y); // string(2) "12"$z = 1;$z .= 23;var_dump($z); // string(3) "123"
共有 7 中,自己测试的例子如下:
$a = 10; // 将 a 的值设置为 10echo ($a += 2) . '<br>'; // 10 + 2 = 12echo ($a -= 2) . '<br>'; // 12 - 2 = 10echo ($a *= 2) . '<br>'; // 10 * 2 = 20echo ($a /= 2) . '<br>'; // 20 / 2 = 10echo ($a %= 2) . '<br>'; // 10 % 2 = 5 余数为 0
讲了 9 种,两边 比较后会返回布尔值 ,常用于流程控制(if/while/for…),代码示例如下:
$a > $b // a 大于 b$a >= $b // a 大于或等于 b$a < $b // a 小于 b$a <= $b // a 小于或等于 b$a == $b // a 等于 b,值相等即可,会自动转换。不要和 = 赋值运算符搞混了$a === $b // 全等,值与类型都相等,老师说推荐使用。$a != $b // a 不等于 b$a !== $b // a 不全等于 b$a <=> // 太空船(结合比较运算符),php7+
关于 太空船 运算符,专门测试了下:太空船比较运算符小知识
讲了 4 种逻辑运算符,&& 与,|| 或,! 非,xor 逻辑异或
$a && $b; // 如果 $a 和 $b 都为 true$a || $b; // 如果 $a 或 $b 任一为 true!$a; // 如果 $a 不为 true$a xor $b; // 如果 $a 或 $b 任一为 true,但不同时是。
| 三元运算符 | |
|---|---|
| 格式 | 条件 ? 结果1 : 结果2 |
| 作用 | 用来简化双分支语句 |
$a = '10';echo is_numeric($a) ? '是数字' : '不是数字'; // 是数字
以上代码等同于:
if (is_numeric($a)) {echo '是数字';} else {echo '不是数字';}
is_numeric()函数的作用:检测变量是否为数字或数字字符串,是则返回 TRUE,否则返回 FALSE。
| null 合并运算符 | |
|---|---|
| 格式 | $a = $a ?? $b |
| 作用 | 简化代码? |
$user = 'jack';$user = $user ?? 'guest';echo $user; // jack
以上代码等同于:
echo $user == 'jack' ? 'jack' : 'guest';
将 @ 符号放在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略。
@ 运算符只对表达式有效。一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和
include调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号