起步 - 运算符

  • 作者:KK

  • 发表日期:2016.3.14


快速阅读

PHP的运算符绝大部分和JS的一样,如果你会JS,那么你只要知道,字符串拼接运算不是用+号而是用.号,调用对象的属性和方法不是用.号而是用->这个符号就可以编写大部分PHP代码了


详细教程

  • 数学运算符

    和JS一样

    echo 1 + 1; //加法
    echo 1 - 1; //减法
    echo 3 * 2; //乘法
    echo 18 / 6; //除法
    echo 20 % 6; //求余数,20除以6得3,余数是2,结果是2
    	
    echo 1 + 1 * 2 + 3 - 1 / 2; //多运算,根据常规数学一样先执行乘法和除法运算,再从左到右执行加减法
    echo (1 + 1) * 2 + (3 - 1) / 2; //用括号提升某两个数的运算优先级别
    	
    $a = 1;
    echo $a += 1; //2 ,相当于 $a = $a + 1
    	
    $b = 2;
    echo $b -= 1; //1 ,相当于 $b = $b - 1
    	
    $c = 3;
    echo $c *= 2; //6 ,相当于 $c = $c * 2
    	
    $d = 4;
    echo $d /= 2; //2 ,相当于 $d = $d / 2;
    	
    //自增运算
    $e = 5;
    $e++;
    echo $e; //6
    $e++;
    echo $e; //7
    	
    //自减运算
    $f = 8;
    $f--;
    echo $f; //7
    

  • 字符串拼接运算

    .号来执行字符串拼接运算

    echo 'a' . 'bc'; //abc
    echo 'a' . '222'; //a222
    echo 'a' . 222; //a222,后面的数字222会被转换成字符串来运算
    echo 'a' + 222; //222,前面的字符串a被转换成数字再运算,不是一个合法的数字,于是转换成数字后当作没有任何数值,结果就是0 + 222
    

    所以如果想将两个字符串拼起来,记录用.号哦!

  • 比较运算

    和JS一样,只是不等于运算除了可以用!=以外,还能用<>来表示

    var_dump(2 == 2); //true 等于比较
    var_dump(2 == '2'); //true 等于比较
    var_dump(2 === '2'); //false 严格比较嘛,一个是数字2,一个是字符串2,你说呢?
    var_dump('aabb' == 'abc'); //false
    var_dump('aabb' === 'abc'); //false 字符串严格比较和模糊比较是一样的效果
    	
    var_dump(1 > 2); //false 大于
    var_dump(4 > 2); //true
    var_dump(2 >= 2); //true 大于等于
    var_dump(1 >= 2); //false
    	
    var_dump(1 < 2); //true 小于
    var_dump(3 < 2); //fase
    var_dump(3 <= 2); //false 小于等于
    var_dump(2 <= 2); //true
    	
    var_dump(2 != 2); //false 不等于
    var_dump(2 <> 2); //false
    var_dump(2 <> '2'); //false
    var_dump(2 !== '2'); //true 严格的不等于 比较,两个比较的值类型不同
    var_dump(2 != 22); //true
    var_dump(2 <> 22); //true
    
  • 逻辑运算

    有两种写法,一种写法和JS一样

    var_dump(true && true); //true 逻辑与,两个都必须为true
    var_dump(true && false); //false 有一个值不为true
    	
    var_dump(true || false); //true 逻辑或,其中一个为true就行
    var_dump(false || false); //false 没有一个为true
    	
    var_dump(!true); //false 逻辑非
    var_dump(!false); //true
    

    另一种写法是用英文单词来表示,分别是and(逻辑与),or(逻辑或)

    var_dump(true && true); //true
    var_dump(true and true); //true and运算符和 && 效果是一样的,只是写法不一样
    var_dump(false and true); //false
    	
    var_dump(true || false); //true
    var_dump(true or false); //true 写法不一样,效果一样
    var_dump(false or false); //false
    

    后面这种英文写法会比较少人用,个人认为是大部分编程语言都是用 && 和 || 这些符号式的,大家互相阅读代码比较习惯吧,还有输入习惯