回炉重造,第二话:PHP算数运算符

接下来继续学习PHP基础知识


算数运算+、-、*、/、%

++和--入门

$a=50;

$b=$a++;//等价于$b=$a;$a=$a+1;

$c=++$a;//等价于$a=$a+1;$c=$a;

前:

$a++;--->$a=$a+1

$a--;===>$a=$a-1

后:

++$a;--->$a=$a+1

--$a;--->$a=$a-1

区别:在赋值语句中,$b=$a++;---->$b=$a;$a=$a+1;

                                    $b=++$a;---->$a=$a+1;$b=$a;

--也一样,即赋值语句中,++在前则先执行++后赋值,++在后则先赋值后执行++


左+左-左*左/左%:

$a=10;$a+=90;--->$a=$a+90;//+、-、*、/、%的形式一样


比较运算符:

$a==$b;    true--->$a等于$b

$a===$b;  true--->$a等于$b,且两个的数据类型要一致,即若$a=2;$b=2.0,结果即为false

$a<>$b;    true--->$a不等于$b

$a!=$b;     true--->$a不等于$b

$a!==$b;   true--->$a不全等于$b,即$a的数值或者数据类型与$b不相等则为真

$a>$b;      true--->$a大于$b

$a<$b;      true--->$a小于$b

$a>=$b;    true--->$a大于或等于$b

$a<=$b;    true--->$a小于或等于$b


运算符:

$a and $b;  and(逻辑与),true--->$a与$b都为真

$a or $b;     or(逻辑或),true--->$a或$b为真

$a xor $b;   xor(逻辑异或),true--->$a或$b为真,但不同时为真,即只有一个为真!

!$a;              not(逻辑非),true--->$a不为真

$a&&$b;     and(逻辑与),true--->$a与$b都为真

$a||$b;        or(逻辑或),true--->$a或$b为真

ps:&&和||的优先级比and和or高

and和or的优先级比=低::::"and"<"="<"&&";"or"<"="<"||"

案例:$a=true && false; --->输出结果为false

           $b=true and false;--->输出结果为true

原因就是算数运算符的优先级问题!


三元运算:表达式1? 表达式2:表达式3
表达式1为真,取表达式2的值;为假则取表达式3的值
例:
                 $a=90;
                 $b=180;
                 $c=$a>$b?12:100;
                 echo 'c='.$c;//输出结果为100
       ?>
表达式2和表达式3可以是不同的数据类型,也可以是函数

字符串运算:
     $a="hello,world";
     $b="php";
     $c=$a.$b;//输出结果为hello,worldphp,即为两字符串拼接
?>
ps:当两个变量(数据类型)使用.连接时,就表示把他们的内容拼接,系统会把变量当成字符串!

类型运算符:instanceof
class cat{}
class dog{}
$c=new cat;
var_dump($c instanceof cat);//输出为true
var_dump($c instanceof dog);//输出为false
PS:instanceof 只能判断类的类型,不能判断基本数据类型,即只能用于创建的类中



运算符优先级:
运算符优先级
结合方向 运算符 附加信息
clone new clone 和 new
[ array()
** 算术运算符
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ - . 算术运算符和字符串运算符
<< >> 位运算符
< <= > >= 比较运算符
== != === !== <> <=> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
?? 比较运算符
? : ternary
right = += -= *= **= /= .= %= &= |= ^= <<= >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
PS:此优先级表来自PHP手册!!特此感谢PHP手册编者,特别推荐学习PHP手册,内容很全

PHP手册下载地址:http://php.net/download-docs.php,下载chm的版本就好啦,很好用,重点推荐

例子:$a=3;
           $b=++$a*3;//输出结果为12,因为++的优先级比*高,所以先++后再*
但,若是$b=$a++*3;则输出为9,后++是在运算后再++,即$b=$a*3;$a=$a+1;

今天就先到这里啦,每天进步一点点,明天一定会更美好


你可能感兴趣的:(回炉重造,第二话:PHP算数运算符)