PHPer 高手之路
  • Introduction
  • First Chapter
  • 基础
    • 数据类型和常量
    • 字符串
      • 字符编码
      • 字符编码相关编程
    • 引用变量
    • 运算符与错误控制符@
    • 流程控制与条件判断
      • foreach遍历中的引用
    • 函数
    • 文件及目录处理
  • PHP 数组
    • 基础
    • PHP数组操作
    • 输入流 php://input
    • PHP数组的内部实现
    • PHP数组和数据结构
    • 示例技巧
  • PHP文件编程
    • 文件系统
    • 基础
    • 实例技巧
    • PHP中XML处理
    • PHP中JSON处理
    • PHP中CSV处理
    • 大文件上传
  • 正则表达式
    • 基础
    • 正则的引擎
    • 表达式的优化
    • PHP中正则的使用
  • PHP 编码技巧
    • PHP编码习惯
    • PHP语法糖
    • PHP代码优化
    • PHP重点新特性
    • PHP编码规范
  • PHP选项和运行原理
    • PHP SAPI
    • PHP运行模式及安装方式
    • 附录:进程和线程的Q解
    • Apache下的MPM模式
    • Apache 与 Nginx
    • PHP的运行机制及原理
    • PHP垃圾回收机制
    • PHP配置选项
  • PHP安全
    • 跨站脚本攻击(XSS )
    • 跨站请求伪造(CRSF)
  • PHP 高级特性
    • 异常处理(Exceptions)
    • 代码复用(Trait)
    • 预定义接口(Predefined Interfaces)
    • 魔术方法(Magic Methods)
    • 回调函数、匿名函数&闭包
    • 命名空间(Namespaces)
    • 自动加载(Autoload)
    • 反射(Reflection)
    • 魔术常量(Magic constants)
    • 综合实例
  • 附录:关键词
  • 附录:资料
  • 代码的版本控制
    • SVN
    • Git
      • 疑难杂症
  • Linux
    • Linux原理与基础
    • 常见命令
    • Shell 编程
    • awk 与 sed
    • 命令笔记
  • HTTP 协议
    • 请求方法与返回状态码
    • Cookie、Session 的原理
  • MySQL
    • MySQL表存储引擎
  • 标准PHP库(SPL)
    • 数据结构
      • SplPriorityQueue - 优先队列
      • SplQueue - 队列
      • SplStack - 栈的功能
    • 接口
      • Countable - count统计接口
  • 附录:ElasticSearch
  • PHP数据结构
  • 附录:Rabbitmq
  • 附录:guzzle
  • JavaScript
    • 附录:资料
  • 疑难杂症
Powered by GitBook
On this page
  • 流程控制语句
  • 条件判断语句
  • switch...case..语句
  • php如何优化多个if..else语句的情况?

Was this helpful?

  1. 基础

流程控制与条件判断

流程控制语句

3中流程控制语句

  • 使用for循环

  • 使用foreach循环

  • 使用while、list()、each()组合循环

介绍:

  • for循环,只能遍历索引数组,

  • foreach可以遍历索引和关联数组

  • 联合使用list(),each()和while循环同样可以遍历索引和关联数组

区别

  • list(),each()和while组合不会reset()操作(之前有对数组进行了指针的操作,则使用此方式,则不会重置数组,而是在这个指针往后循环,就会出现数据不完整)

  • forreach遍历会对数组进行resrt()操作

示例:

<?php

$data = array('a','b','c');
next($data);  //改变了数组的指针指向

echo 'while循环' . '<br>';
while(list($k,$v) = each($data)){ 
    echo $k . '=' . $v. '<br />'; 
} 

echo 'for循环' . '<br>';
for($i=0;$i< count($data); $i++) {
    echo $i . '=' . $data[$i] . '<br>';
}

echo 'foreach循环' . '<br>';
foreach($data as $k => $v) {
    echo $k . '=' . $v . '<br>';
}

输出结果:

while循环
1=b
2=c
for循环
0=a
1=b
2=c
foreach循环
0=a
1=b
2=c

条件判断语句

switch...case..语句

switch后面的控制表达式的数据类型只能是整型、浮点类型或者字符串

continue语句作用到switch的作用类似break;

跳出switch外的循环,可以使用continue2 或者break2;

示例:

<?php

$a = 10;
for($i=0;$i< 10;$i++) {
    switch($i){
        case 5:
            break 2;
        default:
            break;
    }

    echo $i.'<br>';
}

结果:

0
1
2
3
4

效率:

如果条件判断比较复杂或者在一个很多次的循环中,那么用switch语句可能会快一些

php如何优化多个if..else语句的情况?

  • 1.尽量把可能性大的判断往前放

  • 2.如果条件判断比较复杂或者在一个很多次的循环中,并且判断是一个是整型、浮点类型或者字符串换用switch..case..

Previous运算符与错误控制符@Nextforeach遍历中的引用

Last updated 5 years ago

Was this helpful?