一、算数运算
算数运算符,其实就是小学的加减乘除:
实例:
<?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还有其他几种扩展的赋值,都是从赋值(=)演变来的
三、自加,自减运算
自加自减,就是把自己加1,或者减1。
来理解下上面这个表
$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:
来看看例子
实例:
<?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
具体见下表
来看看例子:
<?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/>"; ?>
六、位运算
位运算符即按照二进制的为诸位进行逻辑比较
实例:
<?php //$x二进制值为:0101 $x = 5; //$y二进制值为:1000 $y = 8; //0101与1000诸位进行与运算,两个都是1个则为1,其他都为0 // 0101 // 1000 //———————————— //结果 0000 var_dump($x & $y); ?>
注:实例只列举了一个,其他各位如果有兴趣的话,可以自己尝试输出,看看结果和自己预想的一样不
七、运算符优先级
本章的学习级别为了解级别。
因为绝大多数人都不会去记运算符的优先级。
我们在小学的时候,优先级是先乘除后加减。想要改变运算的优先级加括号即可。
重点:不用记优先级,确定不了的时候号上括号把优先级标出来即可
注:各位如果有兴趣的话,可以翻看PHP手册,上面有详细的优先级描述
八、三元运算符和其它运算符
还有一些特殊的运算符和符号,我们再来进行讲解。可能以后我们需要用到
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>'; ?>
输出结果:
注:反引号在键盘左上角,Tab键的上方
3.@符号
单行抑制错误,以后的章节我们还会讲解到
实例,源码如下:
<?php //打开一个不存在的文件adfsafasdfasfasdfdsadf.txt,你运行一下会发现报错了。 //再前面再加上一个@符看看效果 $fp = fopen('adfsafasdfasfasdfdsadf.txt','r'); //fp = fopen('adfsafasdfasfasdfdsadf.txt','r'); ?>
输出:
加上@之后
<?php //打开一个不存在的文件adfsafasdfasfasdfdsadf.txt,你运行一下会发现报错了。 //再前面再加上一个@符看看效果 //$fp = fopen('adfsafasdfasfasdfdsadf.txt','r'); @$fp = fopen('adfsafasdfasfasdfdsadf.txt','r'); ?>
没有输出,警告也没有,可见@符号抑制了错误
下一节