PHP运算符

50 篇文章 0 订阅

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

 运算符优先级:

  • 递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符( ^ ) > 位运算符( | ) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or
  • 递增/递减运算符不影响布尔值
  • 递增NULL值为1,递减NULL值没有效果

i++和++i都是分两步完成的。前者是先赋值,然后再运算;后者是先运算,后赋值

<?php
$i =0;
$a = $i++;
echo $a;

$i=0;
$a=$i;
$i=$i+1;
echo $a;

执行运算符

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";

反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。 

x<=>y 组合比较符 此为PHP7新增运算符

如果 x 的值和 y 的值相等(不是恒等于),就返回 0;如果 x 的值大于 y 的值,就返回 1;如果 x 的值小于 y 的值,就返回 -1。

取模运算符 % 的结果和被除数的符号(正负号)相同。即 $a % $b 的结果和 $a 的符号相同

<?php
echo (5 % 3)."\n";           // prints 2
echo (5 % -3)."\n";          // prints 2
echo (-5 % 3)."\n";          // prints -2
echo (-5 % -3)."\n";         // prints -2

===  !== 字符串判断值和数据类型是否相等。

===如果是数组类型:具有相同的键/值对并且顺序和类型都相同则为 TRUE。

当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。

而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。

<?php
$a =null;
$a++;
echo $a;
var_dump('1'===$a);

$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");
var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)

逻辑运算符短路效应

or、||、and、&& 都是短路运算符

&&(and)短路与运算符检查第一个表达式是否返回“flase”,如果是“false”则结束语句并返回“false”,否则检查第二个表达式。
||  (or)短路或运算符检查第一个表达式是否返回“true”,如果是“true”则结束语句并返回“true”,否则检查第二个表达式。

defined('HOST') || define('HOST', 'http://' . $_SERVER['HTTP_HOST']);

解释:如果还没有定义常量HOST的时候才执行||后的define语句,如果之前有定义过不执行后面的define的定义操作。

|和&是位运算,运算结果是二进制数。
3|9 = 0011(二进制)| 1001(二进制) =  1011(二进制) =  11(十进制)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值