运算符号(操作符号)
按运算符号的功能分为
一:算术运算符 (+ - * / % ++ --)
% //有两个目的:整出运算;控制范围的运算(不要用小数,也不要用负数)
//会把两边的数转为整数后再进行整除
例子:
代码:
$year=?;
if(($year%4==0 && $year%100!=0) || $year%400==0){
echo "是闰年";
}else{
echo "不是闰年";
}
代码:
$a=109009;
echo $a%10;
++和--
例子:
代码:
$a=10;
$a++; //$a=$a+1 先用变量在自增1
++$a; //$a=$a+1 先用自增1再用变量
$a--; //$a=$a-1 先用变量再自减1
--$a; //$a=$a-1 先自减1再用变量
代码:
$a=10;
$b=$a++; //b=10,a=11
$c= --$b; //c=9,b=9
$d=$c++ + ++$c; //d=20,c=11
$e=$d-- - --$d; //e=2,d=18
二:字符串运算符(.)
三:赋值运算符(= += -= *= %= .=)
例子:
代码:
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //$a=$a*10;
$a/=10; //$a=$a/10;
$a%=10; //$a=$a%10;
$a.="abc"; //$a=$a."abc";
四:比较运算符(> < >= <= == === !=或<> !==) //也叫条件运算符,关系运算符
比较后结果只有一种:boolean true false
==和=== //比较时不仅要求内容相同,也要求类型相同
例子:
代码:
$a=10;
if($a=100){
echo "正确";
}else{
echo "错误";
} //结果为正确,可是10是不会大于100的,因为=号是赋值,不是比较符号
代码:
$a=100;
if($a==100){
echo "正确";
}else{
echo "错误";
} //结果为正确,因为==意思为是否等于的意思。
代码:
$a=100;
if($a=="100"){
echo "正确";
}else{
echo "错误";
} //结果为正确,因为==比较的是内容,不要求类型
代码:
$a=100;
if($a==="100"){
echo "正确";
}else{
echo "错误";
} //结果为错误,因为===不仅比较内容,还要要求类型,"100"是字符类型
代码:
$a=100;
if($a===100){
echo "正确";
}else{
echo "错误";
} //结果为正确
!== // 这个是要求内容不相同,同时类型要不相同
五:逻辑运算符(&&或and ||或or !或not)
逻辑运算符只能操作bool型值,返回的也是bool型值
例子:
代码:
var_dump(true && true); //true
var_dump(true && false); //false
var_dump(true || false); //true
var_dump(!true); //false
var_dump(!false); //true
六:位运算符(& | ^ ~ << >> >>>)
& 和 | 既可以作为逻辑运算符号,又可以做为位运算符号
短路问题:&& 和|| 会发生短路
&& 在做运算时,如果前面的参数是false,则后面是否为true,整个表达式都是false,所以就不去执行后面的操作数
|| 在做运算时,如果前面的参数是true,则后面的是否为false,整个表达式都是true,所以就不去执行后面的操作数
& 或 | 在做运算时,两边都会被执行
七:其他运算符(? : `` @ => -> :: & $)
条件 ?成立执行这里 :不成立执行这里
例子:
代码:
$a=10;
$b=$a>5 ? $a : 5; //如果$a大于5就把$a赋值给$b,否则就是将5赋值给$b
echo $b; //结果是10
`` //执行系统命令的
例子: www.111com.net
代码:
$ip=`ipconfig`;
echo "
";";
echo $ip;
echo "