PHP基础复习(三)——运算符

前言

本系列文章主要是根据实战视频《360大牛:全面解读PHP面试》学习过程中记录的学习笔记,期间也会加入查找资料和平时学习中学习到的知识。

错误控制符

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

<?php
error_reporting(-1);

var_dump($afdsdafs);  //输出  Notice: Undefined variable: afdsdafs in /usercode/file.php on line 4   NULL

@var_dump($afdsdafs); //输出  NULL

运算符优先级

递增/递减 >逻辑非(!) > 算术运算符(先乘除取模,后加减)  >  大小比较 > (不)相等比较 > 引用(&) >  位运算符(^) >位运算符(|) > 逻辑与(&&) >   逻辑或(||)  >  三目(?:)  > 赋值(=)   > and  >  xor  >  or

括号的使用可以增加代码的可读性,推荐使用。

== 和=== 的区别

==用于判断值是否相等,===用于判断值和类型是否相同。

<?php

$i = 1;
$j = '1';

if ($i == $j) {
    echo 'i等于j'.PHP_EOL;     //  i等于j
} else {
    echo 'i不等于j'.PHP_EOL;
}

if ($i === $j) {
    echo 'i等于j'.PHP_EOL;
} else {
    echo 'i不等于j'.PHP_EOL;   //i不等于j
}

等值判断

0, 0.0, '', '0', false,  array() ,  NULL   (整型0、浮点0.0、布尔false、空字符串、0字符串、空数组、NULL)

视频中说道,(FALSE的七种情况都是等值的)。经过代码实测,该说法不完全正确:

<?php

var_dump(array() == false); //为true

var_dump(array() == null);  //为true

var_dump(array() == array());  //为true

var_dump(array() == 0);     //为false  或者说数组与上述除外的其他情况比较都为false

var_dump(array() == 0.0);   //为false  

var_dump(array() == '0');   //为false  

var_dump(array() == '');    //为false  


 

递增/递减运算符

①对布尔值进行递增/递减操作不改变其原来的布尔值:

true++  true--  ++true   --true  false++ false--  ++false  --false  布尔值不变

②递减NULL值没有效果;递增NULL值为1。

<?php

$a;
$b;
$test1 = ++$a;
$test2 = --$b;
var_dump($test1); //int(1)

var_dump($test2);  //NULL

③递增和递减在前就先运算后返回,反之就先返回,后运算。

④++i 比 i++效率高,后加会产生一个临时变量用于保存i的值。

逻辑运算符

短路作用

|| 和 &&  与  or 和 and 的优先级不同

 

解题方法

重点记忆递增/递减运算符的运算规则,逻辑运算符的短路效果,在看到逻辑运算符要多考虑优先级的问题。

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值