运算符
1.算数运算符
+ – * / %
**(幂运算,php 7 中新增)
1 |
echo 3**2 //9 |
2.递增递减运算符
++ —
前缀形式:先加减1,然后再执行。
后缀形式:先执行,然后再加减1。
1 2 3 4 5 6 7 8 |
<?php $i=1; echo ++$i; //2 $=5; echo $i++; // 后缀形式,先执行 5 echo $i; // 后加减 6 |
注意:
布尔型不支持递增递减(值不会变)。
null支持递增,执行的时候null从0开始,但是不支持递减运算符。
字符串递增增加的是ASCII码。但是不支持递减,注意字符超过z会进位而不是继续增加ASCI码值,用得很少,这里不详细解释了。
如何得到ASCII值 ord($var) & 如何根据ASCII得到指定字符
1 2 3 4 |
<?php $str = 'a'; echo ord($str); // 97 echo chr(98); // b |
3.字符连接符
在PHP想要连接字符串可以使用万能胶水“.”,可以连接字符串也可以连接变量。
1 2 3 4 5 6 7 8 9 10 |
<? //字符连接 echo 'a'.'b'.'c'; echo '<br/>; $str1='hello'; $str2='world'; echo $str1$str2; //helloworld $newstr=$str.$str2; // 这里不能用“,”,因为“,”是echo中的 echo $newstr; |
4.赋值运算符
=
+= $a+=1; -> $a=$a+1;
-=
*=
/=
%=
.= $str.=’bing’
产生随机数 mt_rand($min,$max);
1 2 3 |
<?php mt_rand(1,9); echo '<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1000,9999).<span>' |
生成一个颜色每次改变的额4位数
5.比较运算符
比较运算符的结果都是布尔型,不是True就是False,经常作为条件使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php var_dump( 3>1,//true 2<4);//true var_dump( 1==true, //true 1=='1',//false 1===true,//false 1==='1');//false var_dump( 3<=>1, //1 3<=>3, //0 3<=>5 //-1 ); |
注意:
==值比较值是否相等
=== 全等,值和类型都相等才会返回true。
<=>比较左右两边,可以比较浮点数和字符串,左边的大返回1,右边的大返回-1,一样大返回0.
6.逻辑运算符
逻辑运算符结果都是布尔类型
逻辑与 &&
注意:如果第一个表达式为false,最后的结果一定是false,那么就不会执行第二个表达式,则成为短路。
逻辑或 ||
注意:如果第一个表达式为true,后面的表达式就会被短路。
逻辑非 !
逻辑异祸 xor,是两个表达式不同为true或者false的结果为true
7.错误抑制符
抑制错误输出,通过@符号加到会产生错误的表达式之前。
8.三元运算符
exp1>exp2:exp3;
如果exp1为true就执行exp2,否则就执行exp3。
相当于简单的if else。
运算符的优先级
想要改变优先级可以使用括号,因为括号的优先级最高,另外有短路的情况优先考虑。
EXAMPLES
EXAMPLE_1 判断输出
1 2 3 4 5 |
<?php $i = 5; echo $i+++$i--; echo ++$i; echo $i--; |
第一个echo可以需要按照先出现先执行的原则理解成
1 |
{($i++)+(++$i)}-- |
所以应该是{5+6}–所以结果为11,这里要注意的是即使是在同一运算中i只要第二次出现就会指定加1的逻辑,而不是要等等下一个运算才会执行,因此这里的第二个i是6,接下来的i要先递增再输出也就是1+5=6,最后因为上面已经递增了所以输出的结果为6.
EXAMPLE_2 字符串的连接1
把网站放在一个变量中,在页面上使用链接跳转到这个地址。
1 2 3 4 5 6 7 |
<?php $jump = 'bingxiong.vip'; $content = 'bing的天涯路'; $mooc = '<a href="'.$jump.'">'.$content.'</a>'; echo $mooc; |
EXAMPLE_3 写一个四位数,每一位数字为随机颜色
1 2 3 4 5 6 7 8 |
<?php $code='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>'; $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>'; $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>'; $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>'; echo $code; |
注意:像这种HTML和php写在一起的情况是将html代码写在单引号中,然后将php的部分全部使用”.”连接符连上HTML的代码