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

一.算数运算符

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 
  • 布尔值自增自减都无效
  • null自增结果是1,自减无效

二.比较运算符

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

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


五.位运算符

  • “位”就是二进制的每一个位,一个整数由32个位组成
  • 位运算符是仅仅针对整数进行的,运算结果还是一个数字
  • 有这么 4个基本运算符 ,&(按位与)、|(按位或)、~(按位非)、^(按位异或,相同为0,不同为1)
  • 非基本运算符
    1.按位左移,<<,左移多少位,左边溢出的不管,右边空出来的补0
    2.按位有义,>>
  • 原码,补码,反码
    1.源码,二进制数字最左边一位是符号位。整数0,负数1。所以表示一个整数,其实只有31位可用?
    //5的原码
    00000000 00000000 00000000 00000101
    
    //-3的原码
    10000000 00000000 00000000 00000011
    

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);
  • 运算符==,键名键值相同即可true,顺序不必相同
  • 运算符===,要求顺序也必须相同
  • 运算符!=,不要求顺序
  • 运算符!==,要求顺序

八.错误控制运算符

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

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

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

九.运算符优先级

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

  • 括号优先
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容