PHP运算符的描述,PHP运算符详解

什么是表达式

表达式是 PHP 最重要的基石,在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。

PHP运算符

按照功能划分

算数运算符

x + y 加

x - y 减

x * y 乘

x / y 除

x % y 模(除法的余数)

- x 取反,x 取反 -2

x . y 并置,连接两个字符串"Hi" . "Ha"得到HiHa

实例

$a = 3;

$b = 5;

echo $a+$b; //8

echo $a-$b; //-2

echo $a*$b; //15

echo $a/$b; //0.6

echo $a%$b; //3

echo $a%-$b; //3

echo -$a%$b; //-3

echo -$a%-$b; //-3

递增递减运算符

++ x预递增,x 加 1,然后返回 x

x ++后递增,返回 x,然后 x 加 1

-- x预递减,x 减 1,然后返回 x

x --后递减,返回 x,然后 x 减 1

实例

$i = 1;

echo ++$i;//2

$i = 5;

echo $i++; //5

echo $i; //6

$j = 3;

echo $j--; //3

echo $j; //2

$j = 3;

echo --$j; //2

//浮点数支持递增递减运算符

$var = 1.2;

echo ++$var; //

echo "
";

$var = 2.3;

echo --$var; //1.3

$var = 4.5;

echo $var++; //4.5

echo $var; //5.5

$var = 6.7;

echo $var--; //6.7

echo $var; //5.7

//布尔类型不支持递增递减运算符

$var = true;

echo ++$var; //1

$var = true;

echo --$var; //1

//null只支持递增运算符不支持递减运算符

$var = null;

echo ++$var; //1

$var = null;

echo --$var; //

//字符串只支持递增运算符不支持递减运算符

$str = "a";

echo ++$str; //b

$str = "m";

echo --$str; //m

$str = "z";

echo ++$str; //aa

$str = "a1";

echo ++$str; //a2

$str = "a9";

echo ++$str; //b0

字符连接符

英文的 . 和 ,  来连接字符串

echo "a"."b"."c"; //abc

$str1 = "Hello";

$str2 = "World";

echo $str1," ",$str2; //Hello World

$newStr = $str1,$str2;

echo $newStr; //提示语法错误因为 “,” 是echo语句特有的

$newStr = $str1." ".$str2;

echo $newStr; //Hello World

赋值运算符

在 PHP 中,基本的赋值运算符是 “=”。它意味着左操作数被设置为右侧表达式的值。也就是说,”$x = 5” 的值是 5

x = yx = y 左操作数被设置为右侧表达式的值

x += yx = x + y 加

x -= yx = x - y 减

x *= yx = x * y 乘

x /= yx = x / y 除

x %= yx = x % y 模(除法的余数)

a .= ba = a . b 连接两个字符串

实例

$i = "3";

$i+=5;

echo $i; //8

$k = "5";

$k -= 7;

echo $k; //-2

$m = "9";

$m *= 2;

echo $m; //18

$q = "8";

$q /= 4;

echo $q; //2

$n = "6";

$n %= 2;

echo $n; //0

$str = "hello";

$str .= "world";

echo $str; //helloworld

比较运算符

x == y等于 如果 x 等于 y,则返回true,5==8,返回false

x === y绝对等于 如果 x 等于 y,且它们类型相同,则返回true,5==="5" 返回false

x != y不等于 如果 x 不等于 y,则返回true,5!=8 返回true

x <> y不等于 如果 x 不等于 y,则返回true,5<>8 返回true

x !== y绝对不等于 如果 x 不等于 y,或它们类型不相同,则返回true,5!=="5" 返回true

x > y大于如果 x 大于 y,则返回,true,5>8 返回false

x < y小于如果 x 小于 y,则返回true,5<8 返回true

x >= y大于等于如果 x 大于或者等于 y,则返回true,5>=8 返回false

x <= y小于等于如果 x 小于或者等于 y,则返回true,5<=8 返回true

实例

var_dump(

3>1, //bool(true)

2<4, //bool(true)

3>=1, //bool(true)

2<=4 //bool(true)

);

//测试==和===的区别

var_dump(

1==true, //bool(true)

1=="1", //bool(true)

0==false, //bool(true)

0==null, //bool(true)

1!=="1", //bool(true)

1!==1, //bool(false)

1!="1", //bool(false)

1<>1 //bool(false)

);

var_dump(

1===true, //bool(false)

1==="1", //bool(false)

0===false, //bool(false)

0===null //bool(false)

);

逻辑运算符

x and y与 如果 x 和 y 都为 true,则返回 true

x or y或 如果 x 和 y 至少有一个为 true,则返回 true

x xor y异或 如果 x 和 y 有且仅有一个为 true,则返回 true

x && y与 如果 x 和 y 都为 true,则返回 true

x || y或 如果 x 和 y 至少有一个为 true,则返回 true

! x 非 如果 x 不为 true,则返回 true

实例

//测试逻辑运算符

//逻辑与

var_dump(

true && true, //bool(true)

true && false, //bool(false)

false && true, //bool(false)

false && false //bool(false)

);

//逻辑或

var_dump(

true || true, //bool(true)

true || false, //bool(true)

false || true, //bool(true)

false || false //bool(false)

);

//逻辑非

var_dump(

!true, //bool(false)

!false //bool(true)

);

//逻辑异或

var_dump(

true xor true, //bool(false)

true xor false, //bool(true)

false xor true, //bool(true)

false xor false //bool(false)

);

//逻辑与短路

$i = 0;

$j = 1;

if ($i && $j) {//0>-false && 1>-true

echo "aa";

}else{

echo "bb";

}

//bb

$i = 0;

$j = 1;

if ($i && --$j){//0>-false && 0>-false

echo "aa";

}else{

echo "bb";

}

//bb

$i = 0;

$j = 0;

if (++$i && $j++){//1>-true && 0>-false

echo "aa";

}else{

echo "bb";

}

//bb

//逻辑或短路

$i = 0;

$j = 1;

if (++$i || --$j){

echo "aa";

}else{

echo "bb";

}

//aa

错误抑制符

抑制错误输出,同过@符号加到会产生错误的表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

$var = 123;

@settype($var,"xuxiaoke");

按照运算符数目

三元运算符

(expr1) ? (expr2) : (expr3)

如果exp1为真,执行?之后的exp2,否则执行:之后的exp3

实例

$int = 2;

$result = $int == 2 ? "我" : "你";

echo $result;

运算符优先级

// 优先级: && > = > and

// 优先级: || > = > or

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值