一. 运算符
 1.按功能分
  (1)算术运算符
  (2)字符运算符
  (3)赋值运算符
  (4)比较运算符
  (5)逻辑运算符
  (6)错误抑制符
  (7)执行运算符
 2.逻辑运算符 : ! &&(and) ||(or) xor
   (1)&&(and):与,并且,第一个表达式和 第二个表达式都为真才为真否则为假
   (2)||(or):或,或者, 第一个表达式和第二个表达式都为假才为假否则为真   
   (3) ! 非  
   (4) xor :异或  第一个表达式和 第二个表达式的布尔结果不同为真,相同为假
   (5)短路:
       a.原理:如果第一个表达式的结果就能确定整个表达式的结果,那第二个表达式不执行产生短路
       b. &&(and)短路:第一个表达式为假,那第二个表达式不执行,产生短路 
       c. ||(or)短路:第一个表达式为真,那第二个表达式不执行,产生短路

说明:逻辑运算符运算结果布尔类型

3.错误抑制符 : @忽略错误,没错误不忽略
      说明:一般用在函数或表达式前面
 4. 执行运算符: 反引号 ``
       说明:
      a.PHP的命令行
      b.php.ini 中 safe_mode=Off关闭
 5.按参加的操作数的个数分
   (1)单目(一元 ):1个操作数
       ++ -- ! @等
   (2)双目(二元 ):2个操作数
       + - * /  等
   (3)三目(三元 ):3个操作数
       说明:
      a. expr1?expr2:expr3;
                 当expr1为真执行expr2,
                 如果为假执行expr3
      b. PHP5.3以上支持
       expr1?expr1:expr3; 
  6. 运算符的优先级
    (1)单目运算符和赋值运算符是右结合(从右往左)
              其他都是左结合(从左往右运算)
    (2)优先级高的先运行,优先级底的后运行,同级
               左结合或右结合
    (3)用()改变优先级的顺序
    (4)有短路先考虑短路
    (5)运算符的优先级表
              单目运算符    双目运算符(算术 比较 逻辑)
              三目运算符   赋值运算符   and  xor or 
二.流程控制语句
  1.作用:程序都是自上而下逐行执行,如果想通过某条件
             执行某个语句或重复执行某个语句,那就要用到
             流程控制语句 
  2.分类
   (1)条件分支语句
   (2)循环语句  
  3.条件分支语句
    (1)if单分支语句
      if(expr){
        echo 'expr条件为真执行的语句组';
      }
            说明:
       a. 如果expr条件为真执行if后面的大括号中 语句,如果expr条件为假不执行if后面的大括号,执行顺序语句
       b.如果if后面的大括号中语句组只有一条语句大花括号可以省略,不推荐省略
    (2)if双分支语句
       if(expr){
         echo '如果expr条件为真执行的语句组';
       }else{
         echo '如果expr条件为假执行的语句组';
       }
              说明:如果expr条件为真执行if后面的大括号的语句组 否则执行else后面的大括号的语句组,二选一
    (3)if多分支语句:
       if(expr1){
          ....
       }elseif(expr2){
          ...
       }......
       elseif(expr3){
          ...
       }
       [else{
         ....
       }]
              说明:根据不同条件执行对应的语句组,如果某个条件为真就执行对应的语句组然后跳出多分支语句;如果所有条件都为假 并且else存在那执行else对应的语句组然后跳出多分支语句。多选一          
    (4)if嵌套:
      if(expr){
         if(expr2){
           ...
         }else{
           ...
         } 
      }else{
         ...
      }
      if(expr){
         
      }else{
        if(expr2){
          ...
        }else{
           ...
        } 
      }
    (5)switch语句:
     switch(变量名称){
       case 值:
         ...
         break;
       case 值:
         ...
         break;
       ......
       [default:
         ...
         break;]
     }
         说明:
       a.判断变量等于某个特性的值
       b.switch/case 松散比较 
         case 等同于 ==  
       c.switch不能跳出分支语句
                   用break或continue 结束

分支语句

【day04】PHP的更多相关文章

  1. 函数和常用模块【day04】:内置函数(十)

    一.36-40 36.isinstance(object, classinfo) 功能:用于判断,对象是否是某个类的实例 # s = "alex" # 对象,"alex& ...

  2. 函数和常用模块【day04】:内置函数(九)

    一.11-20 11.ord(c) 功能:根据字符,找到对应的ascii值 1 2 >>> ord('a') 97 12.classmethod(function) 功能:类方法,这 ...

  3. 函数和常用模块【day04】:高阶函数(七)

    本节内容 1.介绍 2.具体实用 3.eval()函数 一.介绍 高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数. 二.具体实用 其实说白了,高阶函数功能就 ...

  4. 函数和常用模块【day04】:函数式编程(六)

    本节内容 1.概述 2.介绍 3.定义 一.概述 每当提到函数式编程,很多人都以为就是我们经常写的函数.其实不然. 函数:是定义一段代码的执行过程 函数式编程:输入是确定的,输出也是确定的 二.介绍 ...

  5. 函数和常用模块【day04】:递归(五)

    本节内容 作用域.局部和全局变量 递归 函数式编程 高阶函数和eval()函数 一.概述 在函数内部,可以调用其他函数.但是一个函数在内部调用自身,这个函数被称为递归函数. 二.简单介绍 那递归具体是 ...

  6. 函数和常用模块【day04】:函数参数及调用(二)

    本节内容 1.为什么要有参数 2.返回值 3.有参数函数调用 一.为什么要有参数? 无参数实现 def CPU报警邮件() #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 def 硬盘报警邮件() ...

  7. 函数和常用模块【day04】:函数介绍(一)

    本节内容 1.函数介绍 2.函数定义 3.为什么要使用函数 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论 ...

  8. 函数和常用模块【day04】:内置函数(八)

    一.常用内置函数 1.表格 二.内置函数详情(1-10) 1.abs(x) 功能:取数的绝对值 1 2 >>> abs(-1)  #取-1的绝对值 1 2.all(iterable) ...

  9. 函数和常用模块【day04】:作用域、局部和全局变量(四)

    本节内容 概述 课前前引 局部变量和全局变量 总结 一.概述 我们之前写代码,都需要声明变量,但是我们思考过变量的作用范围吗?今天我们就来讲讲变量的作用范围,这个作用范围又叫作用域.首先我们根据变量的 ...

  10. 函数和常用模块【day04】:函数的非固定参数(三)

    本节内容 1.概述 2.默认参数 3.参数组 4.总结 一.概述 在上一篇博客中我已经写了,位置参数和关键字参数,下面我们来谈谈默认参数和参数组 二.默认参数 默认参数指的是,我们在传参之前,先给参数 ...

随机推荐

  1. [ZJOI2019] 开关 (一种扩展性较高的做法)

    [ZJOI2019] 开关 (一种扩展性较高的做法) 题意: 有n个开关,一开始状态都为关闭.每次随机选出一个开关将其状态改变,选出第i个开关的概率为${ p_i \over \sum_{i=1}^n ...

  2. C# HTTP系列 HttpWebRequest 与 HttpWebResponse

    HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网 ...

  3. DFS(三):八皇后问题

    [例1]八皇后问题. 在一个8×8国际象棋盘上,放置8个皇后,每个皇后占一格,要求皇后间不会出现相互“攻击”的现象,即不能有两个皇后处在同一行.同一列或同一对角线上.问共有多少种不同的放置方法? (1 ...

  4. Socket超时时间设置

    你知道在 Java 中怎么对 Socket 设置超时时间吗?他们的区别是什么?想一想和女朋友打电话的场景就知道了,如果实在想不到,那我们就一起来来看一下是咋回事吧 设置方式 主要有以下两种方式,我们来 ...

  5. JVM的监控工具之jstack

    参考博客:https://www.jianshu.com/p/213710fb9e40 jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threa ...

  6. C++ 在线编译器(支持 C++11)

    C++11 的 Inheriting constructors 特性在 GCC 4.8 以前的版本及 VS2013 中都没有支持,测试起来比较麻烦,所以搜集到了几个支持 GCC 4.8 及更高版本的在 ...

  7. Node.js能解决什么问题?

    一.使用Node.js能解决什么问题 对于PHP.JAVA.Python等服务端语言中,为每个客户端连接创建一个新的线程,而每个线程需要大约2M的内存,理论上,具有8GB内存的服务器可以同时连接的最大 ...

  8. Web Api全局预防Xss攻击

    本文转载自https://www.cnblogs.com/ruanyifeng/p/4739807.html.对第二种过滤方法的代码进行了一些修改和注释,记录一下免得以后忘了.已经测试过,应该可以直接 ...

  9. c++实现文件复制并修改相应属性

    问题描述 完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下: beta@bugs.com [~/]# ls –la sem total 56 drwxr-xr-x 3 beta ...

  10. 使用jq操作脚本生成元素的事件

    其实这个很简单,是jq里面的一个delegate操作,具体如下: $("div").delegate("button","click",fu ...