zoukankan      html  css  js  c++  java
  • PHP 运算符

    运算符


    1. 运算符优先级
    2. 算术运算符
    3. 赋值运算符
    4. 位运算符
    5. 比较运算符
    6. 错误控制运算符
    7. 执行运算符
    8. 递增/递减运算符
    9. 逻辑运算符
    10. 字符串运算符
    11. 数组运算符
    12. 类型运算符

    运算符优先级(高到低)

    结合方向运算符附加信息
    clone new  
    [ array()
    ** 算术运算符
    ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
    instanceof 类型
    ! 逻辑运算符
    * / % 算术运算符
    + - . 算术运算符和字符串运算符
    << >> 位运算符
    < <= > >= 比较运算符
    == != === !== <> <=> 比较运算符
    & 位运算符和引用
    ^ 位运算符
    | 位运算符
    && 逻辑运算符
    || 逻辑运算符
    ?? 比较运算符
    ? : ternary
    right = += -= *= /= .= %= &= = ^= <<= >>=
    and 逻辑运算符
    xor 逻辑运算符
    or 逻辑运算符

    算术运算符

    例子名称结果
    -$a 取反 $a 的负值。
    $a + $b 加法 $a 和 $b 的和。
    $a - $b 减法 $a 和 $b 的差。
    $a * $b 乘法 $a 和 $b 的积。
    $a / $b 除法 $a 除以 $b 的商。
    $a % $b 取模 $a 除以 $b 的余数。
    $a ** $b 乘方 $a 与 $b 的乘方。

    位运算符

    例子名称结果
    $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 等于 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 = "one";
    $b = "two";
    $result = $a == $b ? "true" : "false";
    echo $result;
    

    字符串运算符

    有两个字符串(string)运算符。

    第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。

    第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。

    <?php
    $a = "Hello ";
    $b = $a . "World!"; // now $b contains "Hello World!"
    
    $a = "Hello ";
    $a .= "World!";     // now $a contains "Hello World!"
    ?>
    

    错误控制运算符

    PHP 支持一个错误控制运算符:@。

    $my_file = @file ('non_existent_file') or
        die ("Failed opening file: error was '$php_errormsg'");
    

    执行运算符

    PHP 支持一个执行运算符:反引号(``)。

    使用反引号运算符“`”的效果与函数 shell_exec() 相同。

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

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

    递增/递减运算符

    例子名称效果
    ++$a 前加 $a 的值加一,然后返回 $a。
    $a++ 后加 返回 $a,然后将 $a 的值加一。
    --$a 前减 $a 的值减一, 然后返回 $a。
    $a-- 后减 返回 $a,然后将 $a 的值减一。

    逻辑运算符

    例子名称结果
    $a and $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE。
    $a or $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE。
    $a xor $b Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
    ! $a Not(逻辑非) TRUE,如果 $a 不为 TRUE。
    $a && $b And(逻辑与) TRUE,如果 $a 和 $b 都为 TRUE。
    $a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE。

    数组运算符

    数组运算是对键的运算而不是值的运算。

    例子名称结果
    $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。

    类型运算符

    instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例:

    <?php
    class MyClass
    {
    }
    
    class NotMyClass
    {
    }
    $a = new MyClass;
    
    var_dump($a instanceof MyClass);
    var_dump($a instanceof NotMyClass);
    ?>

    衿华客

    php 教程

    1. PHP简介
    2. PHP安装
    3. PHP语法
    4. PHP数据类型
    5. PHP变量
    6. PHP运算符
    7. PHP流程控制
    8. PHP函数
    9. PHP类与对象
    10. PHP字符串
    11. PHP正则表达示
    12. PHP文件
    13. PHP图形图像
    14. PHPXML
    15. PHP会话缓存
    16. PHP异常处理
    17. PHP数据库
    18. PHP日期时间戳
    19. PHP代码风格规范

    server 环境

    1. ubuntu入门
    2. docker入门
    3. git入门
    4. iterm入门

    frame 框架

    1. laravel入门
    2. dingo入门
    3. JWT入门
    4. Laravel框架关键技术解析
    5. laravel则修笔记
    6. rpc入门
    7. rabbitmq入门
    8. opencc多国语言
    9. laravel兄弟连笔记
    10. laravel进阶

    case 实例

    1. php面试题笔记
    2. python图标提取
    3. 字幕乱码问题
    4. 支付宝接口调用
    5. laravel开发笔记

    db 数据库

    1. elasticsearch入门
    2. 数据库操作
    3. 数据库设计
    4. redis入门

    help

  • 相关阅读:
    Redis总结(六)Redis配置文件全解
    Thrift总结(二)创建RPC服务
    Thrift总结(一)介绍
    C#总结(三)DataGridView增加全选列
    C#总结(二)事件Event 介绍总结
    Quartz.NET总结(六)了解Jobs 和 Triggers
    C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步)
    Redis总结(五)缓存雪崩和缓存穿透等问题
    C#类和成员的修饰符
    sqlserver 修改替换text,ntext类型字段的两种方案
  • 原文地址:https://www.cnblogs.com/myall/p/7145400.html
Copyright © 2011-2022 走看看