运算符

在 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语句结束。