• php-运算符



    运算符(operator):是一种将数据进行运算的特殊符号,在php中共有十种运算符之多

     

    1、赋值运算符:

    =:将右边的结果(可以是变量,数据,常量和其他匀速出来的结果)保存到内存的某个位置,然后将位置的内存地址赋值给左侧的变量(常量)

     

    2、算数运算符:

    • +:数据累加

    • -:数据相减

    • *:数据相乘

    • /:数据相除,被除不能为0(分母不为0)

    • %:数据取余,两个数(整数)相除,保留余数,被除不能为0

     

    3、比较运算符:

    比较两个数据的大小,或者两个内容是否相同

    >
    >=
    <
    <=
    ==:等于(值的大小相同)
    !=
    ===:全等于(大小及数据类型都相同)
    !==:不全等于(只要大小或者类型不同)
    1 <?php
    2     $a='123';
    3     $b=123;
    4     var_dump($a==$b);//结果:bool(true)   判断为相同
    5     var_dump($a===$b);//结果:bool(false) 判断为不同
    6 ?>
     

     

    4、逻辑运算符:

    针对不同的结果进行匹配

    • &&:逻辑与

      左边的条件与右边的条件同时成立(两边结果都为true),满足条件返回true,否则返回false

    • ||:逻辑或

      左边的条件与右边的条件只满足一个即可

    • !:逻辑非

      对已有的条件进行取反

    逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已满足条件。那么久不会运行逻辑运算符后面的表达式;在书写代码时,尽量将出现效率高的表达式放在第一位

     

     

    5、连接运算符:

    是php中将多个字符串拼接的一传符号

    • .:将两个字符串连接到一起

    • .=:复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边变量

      eg:A.=b--->A=A.b

    1 <?php
    2     $a='hello';
    3     $b=123;
    4     echo $a.$b;  //将a与b连接起来
    5     echo $a.=$b; //$a=$a.$b
    6 ?>
    7 //结果:hello 123    hello 123

     

     

    6、错误抑制符:

    ---在php中有一些错误可以提前预知,但是这些错误可能无法避免,但是又不希望报错给用户看,可以使用错误抑制符

    • @:在可能出错的表达式前面使用@符号即可

    1 <?php
    2     $a=10;
    3     $b=0;
    4     
    5     $a/$b;    //用0作为被除数,会报错
    6     @($a/$b); //不会报错
    7 ?>

     

     

    7、三目运算符:

    有三个表达式参与的运算(简单的分支结构缩写)

    • 语法格式:

      表达式1 ? 表达式2 : 表达式3;

      运算:如果表达式1成立,那么执行表达式2,否则执行表达式3

      【注】如果表达式本身比较复杂,建议使用括号包起来

    1 <?php
    2     $a='10';
    3     $b=$a>10?100:0;//如果$a>10,则给b赋值100,否则为0
    4     echo $b;
    5 ?>
    6 //结果:0

    三目运算符可以进行复合三目运算:三目运算中的表达式2和3都可以时另外一个三目运算

     

     

    8、自操作运算符:

    自己操作自己的运算符

    • ++:在原来的值上加1

      $a=1

      $a++等价于$a=$a+1

    • --:在原来的值上减1

    • 在php中自操作符可以放到变量前或后,前置自操作符和后置自操作符

    • 衍生符号:类似自操作

      • +=:左边的结果与右边的相加,然后赋值给左边

      • -=:左边的结果与右边的相减,然后赋值给左边

      • *=:左边的结果与右边的相乘,然后赋值给左边

      • /=:左边的结果与右边的相除,然后赋值给左边

      • %=:左边的结果与右边余运算,然后赋值给左边

      • 右边是一个整体:$a+=$b-->$a=$a+$b

     1 <?php
     2     $a=$b=1;
     3     $a++;
     4     ++$b;    //独立操作,不参与其他运算
     5     echo $a,$b;      //结果:2 2
     6     echo $a++,++$b;  //$a和$b不只是独立运算,还参与了输出运算,结果:2 3    ,但a和b都变成了3
     7 ?>
     8  9 10 <?php
    11     $a=3;
    12     $b=6;
    13     $a+=$b;   //$a=$a+$b
    14     echo $a,$b;   //结果:9 6
    15 ?>

     

     

    9、计算机码:

    计算机在实际存储数据的时候,采用的编码规则(二进制规则)

    • 正数就是存储的原码

    • 负数存储的是补码

    计算机码:原码,反码和补码,数值本身最左边的一位充当符号位,0为正数,1为负数

    • 原码:数据本身从十进制转换乘二进制得到的结果

      正数:左边符号位为0(正数的原码,反码和补码都是原码本身)

      负数:左边符号位为1

    • 反码:针对负数,符号位不变,其他位取反

    • 补码:针对负数,反码+1

    系统中存在两个0:

    • +0:00000000

    • -0:10000000 原码

    • 取反:11111111

    • 补码:00000000

     

    10、位运算符:

    取出计算机中最小的单位(位bit)进行运算

    【注】:1、系统进行任何位运算的时候都是使用的补码

    2、运算结束之后都必须转换乘原码才是最终要显示的数据

    • &:按位与,两个位都为1,结果为1,否则为0

       1 <?php
       2     $a=5;
       3     $b=-5;
       4     var_dump($a & $b);
       5 ?>
       6 //取出系统存储的结果进行与操作
       7 //5     00000101
       8 //-5    11111011   //补码
       9 //&     00000001   //最终结果
      10 //转换:判断符号位,0表示正数,1表示负数(补码)
      11 //输出结果:int(1)
    • |:按位或,两个有一个为1,结果为1

    • ~:按位非,一个位如果为1则变成0,否则反之

       1 <?php
       2     $b=-5;
       3     var_dump(~$b);
       4 ?>
       5 //取出系统存储的结果进行按位非操作
       6 //-5    11111011   //补码
       7 //取反   00000100   //取反的结果就是最终结果
       8 //原码   00000100
       9 //转换:判断符号位,0表示正数,1表示负数(补码)
      10 //输出结果:int(4)
    • ^:按位异或,两个相同则为0,不同则为1

    • <<:按位左移,整个位数(32位)向左移动一位,右边补0

    • '>>':按位右移,整个位数(32位)向右移动一位,左边补符号位对应内容(正数补0,负数补1),【''不是】

       1 <?php
       2     $b=-5;
       3     var_dump($b>>2);   //右移两位
       4 ?>
       5 //取出系统存储的结果进行按位右移操作
       6 //-5        11111011   //补码
       7 //右移两位    _ _111110   
       8 //补符号位    11111110  //补码
       9 //减一       11111101  //反码
      10 //取反       10000010   //原码:-2
      11 //输出结果:int(-2)

       

     

    11、运算符优先级:

    在多种运算符同时存在时,如何结合运算

  • 相关阅读:
    决策树
    交叉熵与softmax
    集成学习
    SVM算法
    蒙特卡罗方法
    K近邻--KNN
    K-Means聚类
    DBSCAN密度聚类
    Bagging、随机森林
    支持向量机SVM
  • 原文地址:https://www.cnblogs.com/eighty-five/p/13631112.html
Copyright © 2020-2023  润新知