zoukankan      html  css  js  c++  java
  • php运算符

    算术运算符

    有以下几个:+   -   *    /    %    ++    --

    注意:注意取余运算%,先取整,再取余

    $v1 = 7.5 % 3; //结果是:1

    $v2 = 7.5 % 3.5; //结果是:1

    对比js中:——js中, 不会进行取整处理

    var  v1 = 7.5  %  3 //结果是:1.5

    var  v2 = 7.5  %  3.5; //结果是:0.5

    自增自减运算符:

    常规:对数字进行自加1或自减1。

    字符串: 只能自增,且自增的效果就是“下一个字符”

    布尔值递增递减无效

    null递减无效,递增结果为1

    前加加和后加加的区别:

    ++:先完成变量的递增运算,再取得该变量的值参与别的运算。

    ++:先将原来变量的值临时存储,再将变量值递增,最后再将临时存储的值参与别的运算。

    推论1:如果独立语句中进行自加运算,前自加后自加没有区别 。

    推论2:如果前自加后自加是放在别的语句中,则会有所区别。

    推论3: 前加加比后加加效率略高(在循环中建议使用前加加)。

    比较运算符:

    包括:>   >=    <    <=    ==松散相等    !=    ===严格相等     !==

    =====的区别:

    ==:松散相等,比较的是两个数据“类型转换之后”是否有可能相等,也常常认为是“数据内容是否相同”

    ===:严格相等,全等,只有两个数据的类型和数据的内容都完全一致,才相等。

    严重推荐参考手册〉〉附录〉〉类型比较表

    常见不同类型的比较(主要指标量类型的数据)——非正常比较

    正常比较——数字的大小比较

    如果有布尔值,均转为布尔值比较:规则:true > false

    否则,如果有数字,均转为数字比较:

    否则,如果两边都是纯数字字符串,转为数字比较

    否则,就按字符串比较

    字符串的比较规则为:按字符的先后顺序依次一个一个比较,发现哪个大,则就表示整体大,后续不再比较

    逻辑运算符:&&   ||   !

    前提:都是针对布尔类型的值进行的运算,如果不是布尔,就会转换为布尔。

    逻辑与:

    规则(真值表):

    true && true   ==> true;

    true && false ==>false

    false && true ==>false;

    false && false ==>false;

    只有两个都是true,结果才是true

    只要有一个是false,结果就是false

    逻辑或:

    规则(真值表):

    true || true   ==> true;

    true || false ==>true

    false || true ==>true;

    false || false ==>false;

    只有两个都是false,结果才是false

    只要有一个是true,结果就是true

    逻辑非:

    !true ==> false

    !false ===>true

    短路现象之逻辑与短路:

    在实际应用中,参与逻辑运算的数据,往往都不是直接的布尔值,而是有关计算之后的布尔结果值。

    大致如下:

    if(  IsFemale( $uName )  &&  isAge($uName) > 18){

    ......echo “女士优先”

    }

    此时,如果IsFemale()函数判断的结果是false,那么后续的函数isAge()就不再调用,自然也不再进行大于18的判断,这是就称为“短路现象”

    短路现象之逻辑或短路:

    if(  IsFemale( $uName )  ||  isAge($uName) < 18){

    ......echo “有限照顾女士或未成年人”

    }

    此时,如果IsFemale()函数判断的结果是true,那么后续的函数isAge()就不再调用,自然也不再进行小于18的判断,这就是“或运算符短路现象”

    字符串运算符:

    只有一个:  .    

    衍生一个:  .=

    会将运算符两边的数据转换为字符串。

    对比js+(具有双重含义,此时就需要一定的“判断”)

    赋值运算符:

    只有一个: =

    衍生多个: +=   -=   *=   /=   %=   .=

    基本形式为:

    $变量  符合赋值运算符   数据2

    这些衍生的赋值运算符,是这种运算的一个简化形式:

    $v2  =  $v2  [运算符]  数据2//某个变量跟另一个数据进行某种运算之后的结果再存入该变量

    对比(它不是这种形式的简化):

    $v2  =  数据2  [运算符]  $v2 //这种形式不应该简化

    条件(三目)运算符:

    一般的运算符需要2个数据参与

    有几个运算符只需要一个数据参与: ++,   --   !

    则:

    条件运算符就需要至少3个数据参与!

    形式为:

    数据1  ?  数据2 :数据3;

    通常,数据1最终应该是一个布尔值(如果不是,则会当作布尔值来使用)。

    含义:

    如果数据1true,则运算结果为数据2, 否则运算结果为数据3

    典型举例:

    $score = 66;

    $result 1=  $score >= 60  ?  “及格”   “不及格”; //结果是“及格”

    $result 2=  $score  ?  “及格”   “不及格”; //结果是“及格”,但含义完全不同,因为即使分数是33,也是及格。只有分数为0才是不及格。

    三目运算符可以转换为if else语句来实现:

    if( $score >= 60{

    $result1 = “及格";

    }

    else{

    $result1 = “不及格";

    }

  • 相关阅读:
    [转]使用@Test 也可以从spring容器中获取依赖注入
    idea/ecipse中使用maven集成springmvc相关jar包时候,出错:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    mongodb 权限设置--用户名、密码、端口
    java中import static和import的区别【转】
    python 数字的四舍五入的问题
    数据库——索引(面试、笔试必会)
    Python 中的那些坑总结——持续更新
    python2和python3的区别——持续更新
    常用的排序算法的时间复杂度和空间复杂度
    Libpacp 深度剖析
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/9607106.html
Copyright © 2011-2022 走看看