PHP比较运算符与逻辑操作的符号_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2086 | 回复: 0   主题: PHP比较运算符与逻辑操作的符号        下一篇 
    本主题由 koei123 于 2015-6-1 14:53:29 移动
dansmall
注册用户
等级:新兵
经验:52
发帖:71
精华:0
注册:2011-10-27
状态:离线
发送短消息息给dansmall 加好友    发送短消息息给dansmall 发消息
发表于: IP:您无权察看 2015-5-4 9:17:08 | [全部帖] [楼主帖] 楼主

运算符是告诉编译程序执行特定算术或逻辑操作的符号,通常与操作数一起构成一个表达式,我们经常看到它会参与数学运算或逻辑运算。PHP也包涵了很多的运算符。

比较运算符种类

如同它们名称所暗示的,允许对两个值进行比较。比较运算符有如下几个:
1) $a > $b

    大于:如果 $a 严格大于$b,则返回TRUE
2)

$a < $b


小于:如果 $a 严格小于$b,则返回TRUE
3) 

$a >= $b


    大于等于:如果 $a 大于等于$b,则返回TRUE
4) 

$a <= $b


    小于等于:如果 $a 小于等于$b,则返回TRUE
5) 

$a <> $b


    不等于:如果 $a 不等于$b,则返回TRUE
6) 

$a != $b


不等于:如果 $a 不等于$b,则返回TRUE(同上)
7) 

$a == $b


    等于:如果 $a等于 $b,则返回TRUE
8) 

$a === $b


    全等于:如果 $a等于 $b,并且它们的类型也相同,则返回TRUE
9)

$a !== $b


不全等于:如果 $a 不等于 $b,或者它们的类型不同,则返回TRUE

其中,我们要重点区分一下“等于”和“全等于”,$a == $b只是对两个变量的值进行了比较运算,而全等于要对运算符两边的表达式同时进行值的比较和数据类型的比较,只有两边的值都相等,运算结果才是“真”。结合“不全等”运算符举例来说,$a = 2; var_dump($a!==2);这个表达式返回值是“假”,因为2是等于2的。另外,$a = 2;是整型而var_dump($a!==2);里的2也是整型,但运算符是不全等于"!=="所以结果是假,因为2是等于2的。反过来如果是这样$a = 2; var_dump($a!=='2');运算结果就是“真”的,因为2不等于'2',后面的'2'是一个字符串的'2',即不全等于不仅仅只是比较变量值,还要对变量的数据类型进行比较。

PHP中比较不同类型的结果

如果PHP比较运算符比较一个整数和字符串,则字符串会被转换为整数后比较。如果比较两个数字字符串,则会把它们作为整数比较,另外此规则也适用于 switch 语句。
比如:

var_dump(0 == "a"); // 返回TRUE,"a"被转为0
var_dump("1" == "01"); // 返回TRUE,当做整数处理


string或null和string的比较:将NULL 转换为 "",进行数字或字符串的比较
bool或null间的比较:转换为bool,FALSE < TRUE 
object内置类可以定义自己的比较,不同类不能比较,相同类则比较属性
string,resource 或 number间的比较:将字符串和资源转换成数字,按普通数学比较
array间的比较:具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组间无法比较,需要逐个值比较(见如下代码)
array和任何其它类型比较:array 总是更大 
object和任何其它类型比较:object 总是更大

数组比较代码:

function standard_array_compare($op1, $op2)
{
      if (count($op1) < count($op2)) { //具有较少成员的数组较小
            return -1; // $op1 < $op2
      } elseif (count($op1) > count($op2)) {
            return 1; // $op1 > $op2
      }
      foreach ($op1 as $key => $val) {
            if (!array_key_exists($key, $op2)) {
                  return null;
            } else if ($val < $op2[$key]) {
                  return -1;
            } elseif ($val > $op2[$key]) {
                  return 1;
            }
      }
      return 0; // $op1 == $op2
}


比较运算符中的三元运算符:

表达式 (expr1) ? (expr2) : (expr3) 当表达式expr1 的值为 TRUE 时的值为expr2,当表达式 expr1 的值为 FALSE 时的值为expr3。

--转自 北京联动北方科技有限公司

该贴由koei123转至本版2015-6-1 14:53:29



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论