🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
任何有值的,都可以看成表达式。 ## 运算符 ### 算术运算符 `+-*/%` 取模常用来换行 ~~~ if($i+1)/2==0{ echo "<br/>"; } ~~~ 递增递减 ~~~ ++$a; $a++; --$a; $a--; ~~~ ### 字符串运算 * 字符串是对ascii码递增,只支持a-z,A-Z之间循环 * 没有字符串递减 * 字符串和数字相加,尝试把字符串转成数字,如果不能转数字变为0 * 字符串和数字可以进行所有的算术运算,转换规则相同 * 字符串数字混合,从第一个数字从前往后取,转不了就舍弃`123f=>123`,`f123=>0` ~~~ $str='a'; //找出a的ascii码,加1,然后返回对应的字符 $str++; //b abc---abd abz---aca ~~~ ~~~ 'a'+3=3; '2'+3=5 ‘123f’+3=123+3=126 ~~~ ### 赋值运算 ~~~ //最常见的6种,其他的不研究 = += -+ *= /= %= ~~~ ### 比较运算符 ~~~ == === != !== > < >= <= ~~~ ~~~ $a=8.4; $b=2.3; $min_val=0.000000001; if(round($a*100000)-round($b*100000)>$min_val){ echo '$a'=='$b'; }else if($a>$b){ echo '$a'>'$b'; }else{ echo '$a'<'$b'; } ~~~ ### 逻辑运算符 运算优先级:&&优先级>and, ||优先级>or, =优先级>or,`&&` 大于 `=` 大于` and` `$a=true|| false //先运算$a=true` 使用括号括起 ~~~ $a and $b; $a or $b; $a xor $b;//有且只有一个为真 !$a; $a && $b;都为真 $a || $b;只要有一个为真 ~~~ **细节** * 逻辑与短路现象 ~~~ //如果第一个为假,第二个不执行运算 $a=0;$b=3; if($a && $b++){ echo "abcd"; } var_dump($a,$b);//0,3 ~~~ * 逻辑或短路 ~~~ //第一个为true,第二个不再执行 $a=1; $b=3; if($a || $b++){ echo "abcd"; } var_dump($a,$b); //1,3 ~~~ ~~~ //$a先比较为false,后运算++ $a=10;$b=3; if($a++>10 && $b++){ echo "abcd"; } var_dump($a,$b); //11,3 ~~~ 三元运算符 ~~~ $res=($a==1)?100:'HELLO'; ~~~ ### 字符串运算符 . * 拼接功能 * .=运算中间不能有空格 ~~~ $a.$b ~~~ 运算: ~~~ 'abc'.1234 //abc1234----字符串运算 'abc'+1234 //1234 ----算术运算 ~~~ ### 类型运算符 instanceof 变量是否属于某个类型 ~~~ class Dog{} $dog1=Dog(); if($dog1 instanceof Dog){ //判断这个实例是不是Dog对象的 } ~~~ ### 执行运算符`` * 跨平台性差,不同平台指令不同 * 等同于函数shell_exec() * 将反引号里面的内容作为外壳来执行,经常用来运行系统指令 ~~~ echo '<meta charset=gbk>'; echo '<pre>'; echo `ipconfig -all`; echo `netstat -anb`; ~~~ ### 错误控制运算符@ * 将@放在表达式之前,可以忽略这个表达式的错误。 * 致命错误显示error * 一般可以和die配合使用,一般错误忽略,致命错误显示die的内容,并终止 ~~~ $con=@mysql_connect('localhost','root','root') or die(mysql_error()); if($con){ echo '连接成功'; } else{ echo "连接失败"; } ~~~ ### 运算符优先级 ![](https://box.kancloud.cn/17f351172baca587eb52dc6a23faa0e2_796x479.png)