PHP开发基础教程之运算符

一、算数运算

算数运算符,其实就是小学的加减乘除:

5.png

实例:

<?php
//声明变量
$x = 16;
$y = 5;
//加
echo $x+$y;
echo "<br/>";
//减
echo $x-$y;
echo "<br/>";
//乘
echo $x*$y;
echo "<br/>";
//除
echo $x/$y;
echo "<br/>";
//取余
echo $x%$y;
echo "<br/>";
//综合运算
echo ($x+$y)*$x;
echo "<br/>";

?>

注:与我们数学所学一样,也有优先级:先乘除,后加减。如果你想更明确的改变优先级,那就用()【小括号】,将想要优先的值给括起来


二、赋值运算

在数学里面把 = (一个等号)叫作赋值运算符,即:把等号右边的值,赋值给等号左边的变量,左边的变量就为右边的值。

代码是从上到下运行的,因此赋值就可以从上至下的反复赋值:

实例:

<?php
//给变量赋不同的值,观察最后的输出结果
$x = 5;
$x = true;
$x = '爱你';
$x = 12.888;
echo $x;
?>

可以看出$x被反复赋值,之后的赋值会覆盖前面赋的值。输出的是最后一次的赋值。

PHP还有其他几种扩展的赋值,都是从赋值(=)演变来的

6.png


三、自加,自减运算

自加自减,就是把自己加1,或者减1。

7.png

来理解下上面这个表

$x++和++$x的区别,实例:

<?php
$x = 5;
$y = 5;
//先赋值后加:即先将$x的值赋值给$z。$x的值为5,所以将$x的值赋值给$z,$z也为5
//之后$x再自己加一
$z = $x++;
//先将$y自加1,$y等于5,自加1后结果为6。因此,$y的结果为6
//自加后,再将结果6偷偷的赋值给自己$w
$w = ++$y;

echo 'x的值为'.$x;
echo "<br/>";
echo 'y的值为'.$y;
echo "<br/>";
echo 'z的值为'.$z;
echo "<br/>";
echo 'w的值为'.$w;
echo "<br/>";
?>

注:大家可以动手试试$x--和--$x之间的区别


四、比较运算

PHP的比较运算符可以比较两个数值,比较之后返回的是布尔值true 或者 false:

8.png

来看看例子

实例:

<?php
$x=2;
$y=4;
var_dump($x>$y);
echo "<br/>";
var_dump($x<$y);
?>

上面几个都是普通的,容易造成理解混乱有两个==和===

== 等于

=== 全等于,也叫做判断类型等于

我们来看一个例子:

实例

<?php
$x=3;
$y="3";
var_dump($x==$y);
echo "<br/>";
var_dump($x===$y);
?>

从上面的例子可以看出==比较的是左右两个数字的值是不是相等,===更为严格点,不仅比较值是否相等,还比较了类型是否相等。

注:!=(不等于)和!==(全不等)也是同理,大家可以尝试输出看看


五、逻辑运算

逻辑运算符比较简单,是我们人类进行逻辑思考时的一种方式

假设$x为条件一,$y为条件二

  •  逻辑与:中文解释为并且,即当$x并且$y都为真(true)时,返回真(true)其余情况都返回假(false)

  •  逻辑或:中文解释为或者。即当,$x或者$y其中一个为真(true)的时候,返回真(true),两个都为假(false)时,返回假(false)

  •  逻辑非:中文解释取反。如果$x的执为假(false),进行一次非操作。非假(false)就为真了,就可以返回真(true)。反推true,则返回假(false)了。

  •  逻辑异或:如果$x和$y相同则为false,不相同则为true

具体见下表

9.png

来看看例子:

<?php
$x=1;
$y=0;
var_dump($x&&$y);
echo "<br/>";
var_dump($x||$y);
echo "<br/>";
var_dump(!$x);
echo "<br/>";
var_dump($x xor $y);
echo "<br/>";
?>

六、位运算

位运算符即按照二进制的为诸位进行逻辑比较

10.png

实例:

<?php
//$x二进制值为:0101
$x = 5;
//$y二进制值为:1000
$y = 8;
//0101与1000诸位进行与运算,两个都是1个则为1,其他都为0
//     0101
//     1000
//————————————
//结果 0000
var_dump($x & $y);
?>

注:实例只列举了一个,其他各位如果有兴趣的话,可以自己尝试输出,看看结果和自己预想的一样不


七、运算符优先级

本章的学习级别为了解级别。

因为绝大多数人都不会去记运算符的优先级。

我们在小学的时候,优先级是先乘除后加减。想要改变运算的优先级加括号即可。

重点:不用记优先级,确定不了的时候号上括号把优先级标出来即可

注:各位如果有兴趣的话,可以翻看PHP手册,上面有详细的优先级描述


八、三元运算符和其它运算符

还有一些特殊的运算符和符号,我们再来进行讲解。可能以后我们需要用到

11.png

1.三元运算符

相当我们下一章要学习的if...else结构。不过三元运算符的写法更加简洁,语法格式如下:

判断$x是否为真? 为真执行的代码段(只能写一句代码):为假执行的代码段(只能写一句代码);

实例:

<?php
$x = true;
$x ? $y = 5 : $y = 6;
//输出5
echo  $y;
?>

2.反引号

我们经常需要显示IP地址,在PHP里面可不可能显示我们windows的IP地址呢?用反引号,就可以执行我们的命令(不过有些虚拟服务器是禁止执行这些的命令脚本的):

源码:

<?php
echo '<pre>';
echo `ipconfig`;
echo '</pre>';
?>

输出结果:

12.png

注:反引号在键盘左上角,Tab键的上方

3.@符号

单行抑制错误,以后的章节我们还会讲解到

实例,源码如下:

<?php
//打开一个不存在的文件adfsafasdfasfasdfdsadf.txt,你运行一下会发现报错了。
//再前面再加上一个@符看看效果
$fp = fopen('adfsafasdfasfasdfdsadf.txt','r');

//fp = fopen('adfsafasdfasfasdfdsadf.txt','r');

?>

输出:

13.png

加上@之后

<?php
//打开一个不存在的文件adfsafasdfasfasdfdsadf.txt,你运行一下会发现报错了。
//再前面再加上一个@符看看效果
//$fp = fopen('adfsafasdfasfasdfdsadf.txt','r');

@$fp = fopen('adfsafasdfasfasdfdsadf.txt','r');

?>

没有输出,警告也没有,可见@符号抑制了错误

继续学习
||
<?php //声明变量 $x = 16; $y = 5; //加 echo $x+$y; echo "<br/>"; //减 echo $x-$y; echo "<br/>"; //乘 echo $x*$y; echo "<br/>"; //除 echo $x/$y; echo "<br/>"; //取余 echo $x%$y; echo "<br/>"; //综合运算 echo ($x+$y)*$x; echo "<br/>"; ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

新版php入门教程