php基础之运算符 - Go语言中文社区

php基础之运算符


运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。PHP中的运算符可分为:算术运算符,字符串运算符,赋值运算符,比较运算符,逻辑运算符,位运算符和其他运算符。

算术运算符

算术运算符是最常用的符号,就是常见的数学操作符,用来处理简单的算术运算。包括加,减,乘,除,取余等。

注:1,除法运算符总是返回浮点数。只有在以下情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时返回一个整数。
2,取余运算符%会先将%运算符两边的操作数转换为整型(去掉小数部分),在进行取余运算,此外,取余结果符号是和被除数的符号是一致的($a%$b结果正负号和$a相同)。
3,递增/递减运算,若变量在前运算符在后(例:$a++),先使用$a的值,再递增/递减。同样,若运算符在前变量在后(例:++$a),先递增/递减,再使用$a的值。
<?php

    $a = 6.9;
    $b = 5.1;
    echo $a % $b; //1

    $c = 6.9;
    $d = -5.1;
    echo $c % $d; //1

    $e = -6.9;
    $f = 5.1;
    echo $e % $f; //-1

    $g = 10;
    $h = $g++;
    echo $g;      //11
    echo $h;      //10

    $g = 10;
    $h = ++$g;
    echo $g;      //11
    echo $h;      //11


字符串运算符

在PHP中字符串运算符有"."和“.=”,第一个是连接运算符(“.”),它返回其左右参数后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。

<?php

    $a = 'hello ';
    $b = $a.'word!';
    echo $b; //hello word!

    $c = 'hello ';
    $c .= 'word!';
    echo $c; //hello word!


赋值运算符

赋值运算符也是一个二元运算符,它左边的操作数必须是变量,右边可以是一个表达式。它是把其右边表达式的值赋给左边变量。除了基本的赋值运算符(=)外,还有一些复合赋值运算符。

<?php

    $a = $b = $c = $d = 10;
    $e = 1;

    $a += 10;   //$a = $a + 10
    $b -= 10;   //$b = $b - 10
    $c *= 10;   //$c = $c * 10
    $d /= 10;   //$d = $d / 10
    $e %= 10;   //$e = $e % 10

比较运算符

比较运算符,用于对运算符两边的操作数进行比较,常用于if条件和while()循环等流程控制语句中,用于判断程序执行的条件。
比较运算符
例子 名称 结果
$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
$a <=> $b 结合比较运算符 $a小于、等于、大于than $b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供.
$a ?? $b ?? $c NULL 合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回NULL。PHP7开始提供。


位运算符

位运算用于对操作数中的每一个二进制位进行运算,包括位逻辑和位移运算符,没有借位和进位。左移时右侧以零填充,符号位被移走被意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。

位运算符
例子 名称 结果
$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 联合 $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
注:+运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则使用左边数组中的,右边的被忽略。
<?php

    $a = array('a'=>1,'b'=>2,'c'=>3);
    $b = array('a'=>4,'b'=>3,'c'=>2,'d'=>1,'e'=>0);
    $c = array('c'=>3,'b'=>2,'a'=>1);
    $d = array('a'=>1,'b'=>2,'c'=>3);


    //$a 和 $b 的联合,两数组中重名的键名,使用左边数组中的。
    var_dump($a + $b); //array(5) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(1) ["e"]=> int(0) }
    //具有相同的键/值对则为 TRUE。
    var_dump($a == $b);// bool(false)
    var_dump($a == $c);// bool(true)
    //具有相同的键/值对并且顺序和类型都相同则为 TRUE。
    var_dump($a === $d);// bool(true)




版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhu_xiao_yuan/article/details/52638109
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 18:48:53
  • 阅读 ( 1022 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢