17.11 PHP入门

06 运算符、管理一组开关状态

2017-12-12  本文已影响15人  海野夏桑

一.算数运算符

1. 加减乘除余
2.自增自减 ++ 、--
$v1 = "a";
$v1 ++;     //b

$v2 = "A";
$v2 ++;     //B

$v3 = "abc";
$v3 ++;     //abd

$v4 = "xyz";
$v4 ++;     //xza

$v5 = "xyzz";
$v5 ++;     //xzaa

$v6 = "zzz";
$v6 ++;     //aaa

$v7 = "abc9";
$v7 ++;     //abd0

$v8 = "9z";
$v8 ++;     //10a 

二.比较运算符

>=、<=、>、<、==、===、!=、!==

1.布尔值比较,永远都是 true > false
2.字符串比较,对于两边的字符,从前往后、一个一个的取出字符进行比较。字母大于任何的数字。
"abc" > "c";    //false
//取a,取c,a < c,false,终
"abc" > "ab1efefrg"    //true
//1.取a,取a,a=a,往后;2.取b,取b,b=b,往后;3.取c,取1,c > 1,true,终

(字符的比较,实际上就是字符编码的比较,理论上中文也是可以比较的?记住几个特殊的字符编码。数字0:48;大写A:65;小写a:97

三.逻辑运算符

四.连接、赋值、条件运算符

1.连接运算符 .
2.连接运算符 .=

两边是字符串就连起来,不是的话,就转换成字符串再连起来

3.赋值运算符(基本) =
4.赋值运算符(衍生)+= 、 -= 、 *= 、 /= 、 %= 、 .=
5.三元运算符,条件?执行1 : 执行2

五.位运算符

2.反码。正数反码是它本身;负数反码符号位不变,其他位取反
3.补码。正数补码也是它本身!负数补码符号位不变,而其他位取反后加1、即反码加1
(计算机内部运算全部用补码进行运算,并且运算的时候符号位不再区分,也参与运算)

cpu运算演示.PNG

六.管理一组开关状态

现实中很多数据只有两种情况,是或者否,对应我们的布尔值。所以我们其实是管理若干个只有两个状态的数据符号。
管理目标:使用一个变量就可以表达若干个数据的当前状态,这里具有三个目标

以下以5个灯泡为例,每个灯泡为一组数据,每个灯泡都有开和关两种状态。
//设定5个常量,对应每一个灯泡。观察其二进制上的位数状态,设定 1 是亮, 0 是灭
define("D1", 1);        //对应二进制00000001
define("D2", 2);        //对应二进制00000010
define("D3", 4);        //对应二进制00000100
define("D4", 8);        //对应二进制00001000
define("D5", 16);       //对应二进制00010000
//定义一个变量,代表这5个灯泡的任意状态组合
$status = 10;       //对应二进制00001010
                    //它表示第2个、第4个灯泡亮
1.获取当前5个灯泡的状态
//进行运算得出灯泡状态
//第1个灯泡
if($status & D1 > 0){
    echo "灯泡1亮";
}else{
    echo "灯泡1灭";
}
//以同样的运算可以得出其他4个灯泡的状态
//整理成一个函数
function status(){
    for($i = 1; $i < 6; $i ++){
        $s = "D" . $i;
        if((constant($s) & $GLOBALS['status']) > 0){
            echo "灯泡" . $i . "是亮的 <br>";
        }else{
            echo "灯泡" . $i . "是灭的 <br>";
        }
    }
}
//运行可得出相应的结果
status(10);
2.打开任意一个灯泡
//打开灯1
$status = $status | D1;
//验证
status(10);

//打开灯5
$status = $status | D5;
//验证
status(10);
3.关闭任意一个灯泡
//关闭灯2
$status = $status & (~D2);
//验证
status(10);

七.数组运算符

$arr1 = array('a'=>10, 'b'=>10, 'c'=>30);
$arr2 = array('a'=>40, 'b'=>50, 'd'=>60);
$arr = $arr1 + $arr2;
print_r($arr1);

八.错误控制运算符

通常就用开一个地方而已啦,链接数据库时

$link = @$my_sqli("数据库地址", "用户", "密码")

用以链接失败时,屏蔽该失败的错误提示

九.运算符优先级

所有运算符都是有优先级的,嘛,这个太多了,全记住太捉急了,记住重要的。

上一篇 下一篇

猜你喜欢

热点阅读