PHP中的运算符

位运算符

位运算符允许对整型数中指定的位进行求值和操作,针对二进制进行的运算

位运算符规则

  • $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的二进制数字的每一位进行按位与运算
数字在系统的二进制表示通常是32位或者64位(取决于系统位数)

A | B

系统内将A, B的二进制数字的每一位进行按位或运算

A « n

A的二进制,往左边移动n位,右边空位补0(相当于数字乘二)

A » n

A的二进制,往右边移动n位,左边空位补符号位

~ A

将A的二进制数字取反

A ^ B

将A,B的二进制数字取异或

原码、反码、补码

原码

10进制数的二进制数字,并且规定第一个位置为符号位(0:正数,1:负数)

反码

正数:反码就是其原码
负数:原码的非符号部分,取反

补码

正数:补码是其原码
负数:反码+1;

  • 数据在cpu内部都是按补码进行运算。
  • 原码,反码,补码的转换过程是系统内部的工作,且转换时符号位不变;
  • 用补码运算时,符号位参与运算(即当作一个普通的二进制位的数字进行运算)

二进制应用

管理一组事物(数据)的开关状态

    1 00000001
    2 00000010
    4 00000100
    8 00001000

数字相加可以产生相应的二进制状态

获取全部状态
    $s1 =  $state & $dn
产生指定状态
    $state = $state | $dn;
消除指定状态
    $state = $state & ~$dn;

数组运算符

  • $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 。

错误抑制符@

    $link = @mysql_connect("localhost", "root", "pswd") or die("数据库连接失败"); 

用于可能发生错误的表达式前面

运算符优先级

算术运算符 > 比较运算符 > 逻辑运算符

流程控制

流程图基本符号

  • 开始结束:圆头矩形
  • 语句块:矩形
  • 判断:菱形
  • 输入输出:平行四边形
  • 走向:箭头

分支结构

  • if else
  • switch
  • while
  • for
  • foreach
  • break $n 可以接受一个可选的数字参数来决定跳出几层循环
  • continue $n 可以接受一个可选的数字参数来决定跳出几层循环
  • declare

替换语法

if,while,for,foreach 和 switch替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;

GOTO

跳转到指定的标识符

    标记 :  
    goto 标记

目标位置只能位于同一个文件和作用域

  • 不能跳入循环
  • 不能跳入函数
  • 不能跳出函数
  • 不能跳出文件

控制文件执行

die

    die([ string $status])

终止脚本的运行,并输出内容,等同于exit()

sleep

    sleep(int $seconds);

PHP脚本停止 seconds秒后,继续执行

你可能感兴趣的:(PHP中的运算符)