美文网首页
PHP基础3:表达式和操作符

PHP基础3:表达式和操作符

作者: 简单asdf | 来源:发表于2017-02-19 20:49 被阅读0次

    表达式

    • 定义
      表达式是可以通过求值来产生一个值的PHP代码块。
    • 示例
      最简单的表达式是字面量和变量。字面量的结果是其本身,而变量的值存储在变量中。使用简单的表达式和操作符,可以形成更复杂的表达式。

    操作符

    • 定义
      操作符需要一定的值(操作数),然后进行某种操作(例如,将它们相加)。操作符的书写和标点符号一样,例如数学符号“+”和“-”。某些操作符修改其操作数,但大部分操作符不会这么做。
    • PHP操作符列表(P优先级,A结合性)
    P A 操作符 操作
    21 N clone, new 创建新对象
    20 L [ 数组下标
    19 R ~ 按位非
    R ++ 自增1
    R -- 自减1
    R (int), (bool), (float), (string), (array), (object), (unset) 类型转换
    R @ 错误屏蔽
    18 N instanceof 类型测试
    17 R ! 逻辑非
    16 L * 乘法
    L / 除法
    L % 取模
    15 L + 加法
    L - 减法
    L . 字符串连接
    14 L << 按位左移一位
    L >> 按位右移一位
    13 N <, <= 小于,小于等于
    N >, >= 大于,大于等于
    12 N == 等于
    N !=, <> 不等于
    N === 类型和值相等
    N !== 类型和值不相等
    11 L & 按位与
    10 L ^ 按位异或
    9 L 竖线 按位或
    8 L && 逻辑与
    7 L 两竖杠 逻辑或
    6 L ?: 条件操作
    5 L = 赋值
    L +=, =, *=, /=, .=, %=, &=, 竖线=, ^=, ~=, <<=, >>= 有操作的赋值
    4 L and 逻辑与
    3 L xor 逻辑异或
    2 L or 逻辑或
    1 L , 列表分隔符

    操作符的数目

    • 一元操作符
      将一个简单的表达式转换成为一个更复杂的表达式。
    • 二元操作符
      将两个操作数(或表达式)组合成一个更复杂的表达式。
    • 三元操作符
      将三个表达式结合成一个。

    操作符的优先级

    • 两条规则
      乘法和除法比加法和减法的优先级高。
      其他操作使用小括号()。

    操作符的结合性

    -定义
    结合性定义了操作符具有相同优先级时计算的顺序。

    隐式转换(类型戏法)

    • 定义
      许多操作符对操作数类型有要求。PHP的值会根据需要自动进行转换类型。
    • 二进制算数操作符的隐式类型转换规则
    第一个操作数类型 第二个操作数类型 类型转换
    整型 浮点型 整型转换为浮点型
    整型 字符串 字符串转换成数字,如果字符串转换后是浮点型,整型也会转换成浮点型
    浮点型 字符串 字符串转换成浮点型
    • 字符串连接操作符将两个操作数转换成字符串,然后再连接
    3 . 2.74  // 获得字符串 32.74
    
    • 字符串转换为数字
      字符串以整数或浮点数开始,则转换为相应的整数或浮点数。
      未在字符串开始处发现任何数字,该字符串数值为0。
      字符串包含一个.或大写小写e,则转为浮点数。

    算术操作符

    加法 +
    减法 -
    乘法 *
    除法 /
    求模 %
    算术负号 -
    算术断言 +
    

    字符串连接操作符

    .
    

    自动递增/自动递减操作符

    ++
    --
    

    可对字符串操作,例如把一个字母递增,它会成为下一个字母。如为z,则变为a,左边一个字符递增。

    比较操作符

    • 比较操作符对应的不同的比较关系
    第一个操作数 第二个操作数 比较关系
    数字 数字 数字
    数字字符串 数字字符串 数字
    数字字符串 数字 数字
    数字字符串 字符串 数字
    字符串 数字 字典
    字符串 字符串 字典
    • 数字字符串字典比较
    strcmp()
    
    • 操作符
    ==
    ===
    !=, <>
    !==
    >
    >=
    <
    <=
    

    位操作符

    • 定义
      位操作符作用于二进制表示的操作数上。操作数先转为二进制,再进行位操作,再转回原类型。
    ~
    & //两个字符串,较长的尾部忽略
    | //两个字符串,较短的后面0填补
    ^ //两个字符串,较长的尾部忽略
    <<
    >>
    

    逻辑操作符

    &&, and 
    例:
    $result = $flag and mysql_connect(); //条件为真才执行
     
    ||, or
    例:
    $result = fopen($filename) or exit(); //异常触发错误信息
    
    xor //有且仅有一个true, 返回true
    !
    
    • 短路处理(short-circuiting)
      &&前面为false,后面不执行。
      ||前面为true,后面不执行

    类型转换操作符

    • 定义
      允许把变量强制转换为其他类型。
    • 列表
    操作符 同义操作符 转换类型为
    (int) (integer) 整型
    (bool) (boolean) 布尔型
    (float) (double),(real) 浮点型
    (string) 字符串
    (array) 数组
    (object) 对象
    (unset) NULL
    • 变量本身不变

    • 特殊转换结果
      数组转换成数字,结果为1。
      数组转字符串,结果array。
      对象与数组可互相转换。

    赋值操作符

    • 赋值 =

    • +=,-=,*=,/=,%=,^=,&=,|=,.=

    其他操作符

    • 屏蔽错误@
      屏蔽操作符或函数可能产生的错误信息。

    • 执行外部命令...
      执行shell命令,返回输出结果。

    • 条件选择 ? :
      条件选择符先执行?前面的表达式,如果结果为true,返回?与:之间的表达式的值,否则返回: 之后的表达式的值。

    • 类型 instanceof
      测试变量是否为给定类的示例化对象。

    $a = new Foo;
    $isAFoo = $a instanceof Foo; // true
    

    相关文章

      网友评论

          本文标题:PHP基础3:表达式和操作符

          本文链接:https://www.haomeiwen.com/subject/hbljwttx.html