小言_互联网的博客

php的八种常用运算符及实例用法

348人阅读  评论(0)

算术运算符的简单应用

算术运算符是处理算术运算的符号。在数字的处理中应用的最多,常用的算术运算符如下表

 

 

这里要说的是最后两个递增/递减运算符,主要是对单独一个变量来操作的。

 

递增/递减运算符有两种使用方法:

第一种:是先将变量增加或者减少1,然后再将值赋给原变量,叫做前置递增/递减运算符。

第二种:是将运算符放在变量后面,先返回变量的当前值,然后再将变量的当前值增加或者减少一,我们称之为后置递增/递减运算符

 

算术运算符用法实例

下面的例子分别使用上表中的几种运算符进行计算,代码如下:


   
  1. <?php
  2. $a= 8;
  3. $b= 2;
  4. $c= 3;
  5. echo $a+$b. '<br/>';
  6. echo $a-$b. '<br/>';
  7. echo $a*$b. '<br/>';
  8. echo $a/$b. '<br/>';
  9. echo $a%$c. '<br/>';
  10. $a++;
  11. echo $a. '<br/>';
  12. ++$a;
  13. echo $a. '<br/>';
  14. $c--;
  15. echo $c;

运行结果如下图

 

 

字符串运算符慨念和用法

在PHP中,为我们提供的字符串运算符有两种

第一种:连接运算符,用“.”表示,他的作用是将两个字符串连接起来,组成一个新的字符串。

第二种:赋值连接运算符,用“.=”表示,他是PHP运算符中“字符串运算符”和“赋值运算符”的结合,关于赋值连接运算符。

 

如果使用“+”号时,PHP会认为这是一次运算。这时,如果“+”号的两边有字符串类型的时候,PHP会自动转换为整型,其中如果有字母的话,会当作0输出,如果是以数字开头的字符串,则会截取字符串头部的数字,在进行计算。

实例代码如下:


   
  1. <?php
  2. $a= '1.5a*1';
  3. $b= 1;
  4. $ab=$a.$b;
  5. echo $ab. '<br/>';
  6. $ba=$a+$b;
  7. echo $ba;

输出结果如下:

 

 

PHP运算中的赋值运算符

 

 

php赋值运算符实例

代码如下


   
  1. <?php
  2. $a = 20;
  3. echo $a. '<br>';
  4. $a = 20;
  5. echo $a. '<br>';
  6. $a += 20;
  7. echo $a. '<br>';
  8. $a -= 20;
  9. echo $a. '<br>';
  10. $a *= 20;
  11. echo $a. '<br>';
  12. $a /= 20;
  13. echo $a. '<br>';
  14. $a %= 20;
  15. echo $a. '<br>';

运行结果:

 

PHP运算符中的“位运算符”

位运算符是指对二进制位从低位到高位对齐后进行运算,它允许对整型数中指定的位进行求值和操作。

在PHP中的为运算符如下表所示

 

下面我们用例子来上面一下上表中的运算符

 


   
  1. <?php
  2. $m= 1;
  3. $n= 2;
  4. $mn=$m&$n;
  5. echo $mn. '<br>';
  6. $mn=$m^$n;
  7. echo $mn. '<br>';
  8. $mn=$m|$n;
  9. echo $mn. '<br>';

代码运行结果:

 

 

例子解释:

$m&$n : 二者都为 1 时为 1 ,否则为 0。即把 $a 和 $b 中都为 1 的位设为 1 ,否则设为 0 。

00000001 ← $m
& 00000010 ← $b

比较结果为00000000,所以输出0

$m^$n :在按位亦或的过程中,不同为1,相同为0。
00000001 ← $m

^ 00000010 ← $n

所以结果为00000011,进而输出3。

$m|$n: 在按位或的过程中,有1为1,全0为0,

00000001 ← $m

| 00000010 ← $n

则结果为00000011,所以输出3

 

按位非或按位取反示例,代码如下


   
  1. <?php
  2. $m= 2;
  3. $m1=~$m;
  4. echo $m1;

运行结果

 

 

注:在计算机中,负数以其正值的补码形式表达。

1: 2的32位原码为 0000 0000 0000 0000 0000 0000 0000 0010

2: 按位取反后为 1111 1111 1111 1111 1111 1111 1111 1101

由于最前面的数为1,符号位为1,即为负数,所以,以其正值的补码形式表示为:(符号位不变,按位取反,末尾加1)

1000 0000 0000 0000 0000 0000 0000 0011

所以输出为-3

 

左移右移代码示例


   
  1. <?php
  2. $m= 12;
  3. $n= 3;
  4. $mn=$m<<$n;
  5. echo $mn. '<br>';
  6. $mn=$m>>$n;
  7. echo $mn;

运行结果:

 

 

$m<<$n:将 $m 中的位向左移动 $n 次(每一次移动都表示“乘以 2”,即“乘以 2$b ”)。
0000 1100 ← $m
<< 0110 0000 左移3个,空出的位置用 0 补充

0110 0000 = 96

 

$m>>$n:将 $m中的位向右移动 $n 次(每一次移动都表示“除以 2”,即“乘以 2 -$b ”)。
0000 1100 ← $m
<< 0000 0001 右移3个,多出的位置截掉

0000 0001 = 1

 

PHP运算中的逻辑运算符

 

 

在这个实例中我们使用逻辑或中的运算符号“||”和“or”进行相同的判断操作,但是因为“||”和“or”的优先级不同,所以他们返回的结果也是不相同的,代码如下


   
  1. <?php
  2. $a= true;
  3. $b= true;
  4. $c= false;
  5. if($a or $b and $c){
  6. echo 'ok';
  7. } else{
  8. echo 'no';
  9. }
  10. echo '<br>';
  11. if($a || $b and $c){
  12. echo 'ok';
  13. } else{
  14. echo 'no';
  15. }

代码运行结果:

可以看到or的优先级低于and,而||的优先级高于and

 

PHP运算符--”比较运算符“实例讲解

 

 

这里有两个需要需要注意的比较运算符,就是“===”和“!==”。用“===”运算符进行比较的话,不仅要在数值上相等,还要在数据类型上一样,例如,$a===$b,说明$a和$b不仅在数值上完全相等,而且$a和$b的数据类型也是一样的。!==和===的意义相反,例如$a!==$b,就是说明$a和$b或者数值不等或者数据类型不等。


   
  1. <?php
  2. $x= 100;
  3. $y= '100';
  4. var_dump($x==$y);
  5. var_dump($x===$y);
  6. var_dump($x!=$y);
  7. var_dump($x!==$y);

代码运行结果:

 

 

“错误控制运算符”

错误控制运算符顾名思义就是用来控制错误输出,这个控制只是将错误信息屏蔽掉,不让其显示出来,并不是真正的解决错误。

使用的方法很简单,就是在错误的表达式之前加上“@”就可以了。

这里有个需要注意的地方,我们的“@”错误控制符不能放在函数或者是类的定义之前,也不可以用在条件结构等方面。“@”控制符是只对表达式有效的,简单点说就是:如果从一个地方得到了一个值,我们就可以将@放在它的前面。比方说,把@放在变量、常量和函数调用的前面。

 

下面我们看一下错误控制运算符的使用实例

当我们打开一个不存在的文件时,用“@”来屏蔽错误信息的输出

在不使用“@”时;


   
  1. <?php
  2. $file = fopen( 'index.php', 'r');

会有以下的输出:

 

 

但是,但我们使用“@”时。这个错误信息就不会出现。


   
  1. <?php
  2. $file = @fopen( 'index.php', 'r');

这样我们就不会有错误信息输出了,当然,这个错误依然存在,只不过看不到而已。

 

“三元运算符”实例讲解

三元运算符在程序设计经常用的,它又称为“三目运算符”

本实例运用三元运算符实现一个简单的选择功能


   
  1. <?php
  2. $a= 100;
  3. $b=($a? 'ok': 'no');
  4. echo $b;

代码运行结果:

 

 PS:虽说三元运算和 if...else...流程语句一样,但是多数情况下我们只在代码较为简单的时候使用三元运算符。

 

php运算符优先级顺序详解

如果写的表达式很复杂,而且包含了较多的运行符,不妨多使用括号,想下面这样:


   
  1. <?php
  2. $a and (($b !=$c) or ( 5*( 50-$d)));
  3. ?>

这样就能减少出现逻辑错误的可能

有时使用括号可以增强代码的可读性。例如,下面这样:

 


   
  1. <?php
  2. $a = 3 * 3 % 5; // (3 * 3) % 5 = 4
  3. //三元运行的结合
  4. $a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2
  5. $a = 1;
  6. $b = 2;
  7. $a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
  8. ?>

 


转载:https://blog.csdn.net/qq_37428797/article/details/106208125
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场