PHP运算符-创新互联
总括
运算符可按照其能接受几个值来分组。一元运算符只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。二元运算符可接受两个值,例如熟悉的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。最后是唯一的三元运算符 ? :,可接受三个值;通常就简单称之为“三元运算符”
站在用户的角度思考问题,与客户深入沟通,找到酒泉网站设计与酒泉网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖酒泉地区。运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18
如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且结果是 -4. 另外一方面,"="是右联的,所以 a=a=b = c等同于c等同于a = (b=b=c)
[注意]没有结合的相同优先级的运算符不能连在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表达式 1 <= 1 == 1 是合法的, 因为 == 的优先级低于 <=
优先级
结合方向 运算符 附加信息 无 clone new clone 和 new左 [ array() 右 ++ -- ~ 类型和递增/递减 无 instanceof 类型 右 ! 逻辑运算符 左 * / % 算术运算符 左 + - . 算术运算符和字符串运算符 左 << >> 位运算符 无 < <= > >= 比较运算符 无 == != === !== <> <=> 比较运算符 左 & 位运算符和引用 左 ^ 位运算符 左 | 位运算符 左 && 逻辑运算符 左 || 逻辑运算符 左 ?? 比较运算符 左 ? : ternary 右 = += -= *= **= /= .= %= &= |= ^= <<= >>= 赋值运算符 左 and 逻辑运算符 左 xor 逻辑运算符 左 or 逻辑运算符
算术运算符
-$a 取反 $a 的负值。$a + $b 加法 $a 和 $b 的和。$a - $b 减法 $a 和 $b 的差。$a * $b 乘法 $a 和 $b 的积。$a / $b 除法 $a 除以 $b 的商。$a % $b 取模 $a 除以 $b 的余数
除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数
取模运算符的操作数在运算之前都会转换成整数(除去小数部分)
取模运算符 % 的结果和被除数的符号(正负号)相同。即 a % b 的结果和 a 的符号相同
赋值运算符
基本的赋值运算符是“=”,它实际上意味着把右边表达式的值赋给左边的运算数
赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3
在基本赋值运算符之外,还有适合于所有二元算术,数组集合和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它
x = y x += y x -= y x *= y x /= y x %= y
引用赋值
PHP 支持引用赋值,引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西
递增/递减
例子 名称 效果++$a 前加 $a 的值加一,然后返回 $a$a++ 后加 返回 $a,然后将 $a 的值加一--$a 前减 $a 的值减一, 然后返回 $a$a-- 后减 返回 $a,然后将 $a 的值减一
位运算符
位运算符允许对整型数中指定的位进行求值和操作
例子 名称 结果$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1$a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1$a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1 ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然$a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)
比较运算符
比较运算符,如同它们名称所暗示的,允许对两个值进行比较
例子 名称 结果$a == $b 等于 TRUE,如果类型转换后 $a 等于 $b$a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同$a != $b 不等 TRUE,如果类型转换后 $a 不等于 $b$a <> $b 不等 TRUE,如果类型转换后 $a 不等于 $b$a !== $b 不全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同$a < $b 小与 TRUE,如果 $a 严格小于 $b$a > $b 大于 TRUE,如果 $a 严格大于 $b$a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b$a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对
truevar_dump("1" == "01"); // 1 == 1 -> truevar_dump("10" == "1e1"); // 10 == 10 -> truevar_dump(100 == "1e2"); // 100 == 100 -> trueswitch ("a") {case 0: echo "0";//输出0 break;case "a": echo "a"; break; }?>
比较多种类型
运算数 1 类型 运算数 2 类型 结果null 或 string string 将 NULL 转换为 "",进行数字或词汇比较 bool 或 null 任何其它类型 转换为 bool,FALSE < TRUEobject object 内置类可以定义自己的比较,不同类不能比较string、resource、number string、resource、number 将字符串和资源转换成数字,按普通数学比较array array 具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组无法比较,否则挨个值比较object 任何其它类型 object 总是更大array 任何其它类型 array 总是更大
三元运算符
"?:"三元运算符是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3
=60?"及格":"不及格"; echo $b;//及格?>
错误控制运算符
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉
[注意]错误控制前缀@运算符只对表达式有效,@不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构如if和foreach等
逻辑运算符
例子 名称 结果$a and $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE$a or $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE$a xor $b Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是! $a Not(逻辑非) TRUE,如果 $a 不为 TRUE$a && $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE$a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE
字符串运算符
有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后
数组运算符
例子 名称 结果$a + $b 联合 $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 不全等于 $b 则为 TRUE
"red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; var_dump($z);//array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" } echo "
";var_dump($x == $y);//bool(false)echo "
";var_dump($x === $y);//bool(false)echo "
";var_dump($x != $y);//bool(true)echo "
";var_dump($x <> $y);//bool(true)echo "
";var_dump($x !== $y);//bool(true)?>
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:PHP运算符-创新互联
网站地址:http://pwwzsj.com/article/ghsej.html