4.运算符和流程控制

运算符

在 PHP 中,赋值运算符 = 用于给变量赋值。

在 PHP 中,算术运算符 + 用于把值加在一起

1.算数运算符

运算符 名称 描述 实例 结果
x + y x 和 y 的和 2 + 2 4
x - y x 和 y 的差 5 - 2 3
x * y x 和 y 的积 5 * 2 10
x / y x 和 y 的商 15 / 5 3
x % y 模(除法的余数) x 除以 y 的余数 5 % 2 10 % 8 10 % 2 1 2 0
- x 取反 x 取反 <?php $x =2; echo -$x; ?> -2
a . b 并置 连接两个字符串 "Hi" . "Ha" HiHa
<?php
    
    // 取余
	echo 10 % 3      // 返回10/3的余数  1
    
    // 取反
    $x =2; 
	echo -$x;       // -1
	
	//并置
	echo 'hello '.'word'   // hello word
    
?>

2.赋值运算符

在 PHP 中,基本的赋值运算符是 "="。它是左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 5。

运算符 等同于 描述
x = y x = y 左操作数被设置为右侧表达式的值
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y 模(除法的余数)
a .= b a = a . b 连接两个字符串
<?php 
$x=10; 
echo $x; // 输出10
 
$y=20; 
$y += 100;
echo $y; // 输出120
 
$z=50;
$z -= 25;
echo $z; // 输出25
 
$i=5;
$i *= 6;
echo $i; // 输出30
 
$j=10;
$j /= 5;
echo $j; // 输出2
 
$k=15;
$k %= 4;
echo $k; // 输出3

$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world!
?>

3.递增/递减运算符

运算符 名称 描述
++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1
-- x 预递减 x 减 1,然后返回 x
x -- 后递减 返回 x,然后 x 减 1
<?php
$x=10; 
echo ++$x; // 输出11
 
$y=10; 
echo $y++; // 输出10
 
$z=5;
echo --$z; // 输出4
 
$i=5;
echo $i--; // 输出5
?>

4.比较运算符

比较操作符可以让您比较两个值:

运算符 名称 描述 实例
x == y 等于 如果 x 等于 y,则返回 true 5==8 返回 false
x === y 绝对等于 如果 x 等于 y,且它们类型相同,则返回 true 5==="5" 返回 false
x != y 不等于 如果 x 不等于 y,则返回 true 5!=8 返回 true
x <> y 不等于 如果 x 不等于 y,则返回 true 5<>8 返回 true
x !== y 绝对不等于 如果 x 不等于 y,或它们类型不相同,则返回 true 5!=="5" 返回 true
x > y 大于 如果 x 大于 y,则返回 true 5>8 返回 false
x < y 小于 如果 x 小于 y,则返回 true 5<8 返回 true
x >= y 大于等于 如果 x 大于或者等于 y,则返回 true 5>=8 返回 false
x <= y 小于等于 如果 x 小于或者等于 y,则返回 true 5<=8 返回 true

5.逻辑运算符

运算符 名称 描述
x and y 如果 x 和 y 都为 true,则返回 true
x or y 如果 x 和 y 至少有一个为 true,则返回 true
x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true
x && y 如果 x 和 y 都为 true,则返回 true
x || y 如果 x 和 y 至少有一个为 true,则返回 true
! x 如果 x 不为 true,则返回 true

6.运算符优先级

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

说明:左 = 从左到右,右 = 从右到左。

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到

运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。

7.括号的使用

我们通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定

你可以认为括号的优先级高于它们

<?php
// 括号优先运算
 
$a = 1;
$b = 2;
$c = 3;
$d = $a + $b * $c;
echo $d;
echo "\n";
$e = ($a + $b) * $c;  // 使用括号
echo $e;
echo "\n";
?>

8.三元运算符

语法: 条件?条件为真执行的代码:条件为假执行的代码

<?php
	$x = false;
	$y = true;
	echo $x;    // 0
	echo $y;    // 1
	$x?$x='真':$x='假';
	$y?$y='真':$y='假';
	echo $x;   // 假
	echo $y;   // 真
?>

9.其他运算符

符号信息 说明
``反引号 反引号中间插入代码,执行系统命令,等价于shell_exec函数
@ 表示抑制错误,把这一行的错误不让它显示出来了,效率低不建议用
=> 数组下标访问符
-> 对象访问符
instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false
必会: ``  反引号中间插入代码,执行系统命令,等价于shell_exec函数
<?php
	echo `ipconfig`   // 打印本机的IP地址信息
?>

流程控制

条件语句用于根据不同条件执行不同动作。

当你编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。

在 PHP 中,提供了下列条件语句:

  • if 语句 - 在条件成立时执行代码
  • if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
  • if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
  • switch 语句 - 在若干条件之一成立时执行一个代码块

1.if 语句

if 语句用于仅当指定条件成立时执行代码

语法 :

if (条件) {
  当条件为 true(真) 时执行的代码;
}

举例:

<?php  $sex = 'boy';  if($sex = 'boy' ){      echo '男孩子在外面要保护好自己';  }?>

2.if-else

在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if....else 语句。

语法:

if (条件) {  条件为 true 时执行的代码;} else {  条件为 false 时执行的代码;}

举例

<?php  $sex = 'boy';  if($sex = 'boy' ){      echo '男孩子在外面要保护好自己';  }else{      echo '不要相信男人说的话';  }?>

3.iif...elseif....else

在若干条件之一成立时执行一个代码块,请使用if...elseif...else语句。.

语法:

if (条件){    if 条件成立时执行的代码;}elseif (条件){    elseif 条件成立时执行的代码;}else{    条件不成立时执行的代码;}

举例:

<?php  $dida = rand(0,23);   // 获取一个0-23之间的随机数,包括23  echo "当前时间为 $dida 点\n";  if($dida > 6 && $dida < 10 ){      echo '豆浆油条';  }elseif ($dida > 10 && $dida < 14){      echo '吃兰州拉面';  }elseif ($dida >= 14 && $dida < 22){      echo '正规按摩';  }elseif ($dida > 22 && $dida <=23){      echo '打打游戏';  }elseif ($dida >=1 && $dida <3){      echo '吃吃夜宵';  }else{      echo '睡觉或者工作中';  }?>

4.switch

如果您希望有选择地执行若干代码块之一,请使用switch语句

语法 :

<?php    switch (n)    {    case 值1:        如果 n=值1,此处代码将执行;        break;    case 值1:        如果 n=值1,此处代码将执行;        break;    default:        如果 n 既不等于 值1 也不等于 值1,此处代码将执行;    }	 // case 值,后面紧跟的不是分号是:(冒号)	//  每个case下面必须有break	// default 可以不写?>

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

举例 :

$rubbish_category = '湿垃圾';switch ($rubbish_category) {    case '不可回收垃圾':        echo '去A垃圾桶';        break;    case '可回收垃圾':        echo '去B垃圾桶';        break;    case '干垃圾':        echo '去C垃圾桶';        break;    case '湿垃圾':        echo '去D垃圾桶';        break;    default:        echo '你到底是什么垃圾???';}?>

注意 : 如果不写break,会从匹配到的第一个case后,一直执行到第一个break,中间就算有case也不会匹配了

直接执行case里面的代码,如果一直没有break,会执行到default下方代码结束,如果default也没有就会执行匹

配到的case语句下所有的代码,一直到switch语句结束。

原文地址:https://www.cnblogs.com/xcymn/p/15721316.html