美文网首页
PHP流程控制

PHP流程控制

作者: 码一 | 来源:发表于2022-06-02 14:46 被阅读0次

    本文是复习所写,并不会涵盖一些基础知识点

    if elseif else

    while

    do-while

    for

    foreach

    break

    可以接受一个数字参数,指定跳出几重循环,默认是1

    continue

    在循环结构中,跳过循环体剩余代码的执行,同样可以接受一个数字参数,指定跳过几层循环,默认是1

    switch

    match PHP 8

    <?php
    $a = 'cake';
    $value = match($a) {
        'apple' => 'This food is an apple',
        'bar' => 'This food is a bar',
        'cake' => 'This food is a cake',
    }
    var_dump($value);
    

    declare

    用来设定一段代码的执行指令

    <?php
    declare(ticks=1); // 方式一
     
    // 方式二
    declare(ticks=1) {
        // ...
    }
    
    1. Ticks

      Tick(时钟周期)是一个在 declare 代码段中解释器每执行 N 条可计时的低级语句就会发生的事件

      <?php
      declare(ticks=1);
       
      function tickHandler()
      {
          echo 'called!' . PHP_EOL;
      }
       
      register_tick_function('tickHandler'); // 注册事件,引起tick事件
       
      $a = 1; // 引起tick事件
      if ($a>0) {
          $a += 2; // 引起tick事件
      }
       
      unregister_tick_function('tickHandler'); // 取消事件
      
    2. Encoding

      用来指定脚本的编码方式

      <?php
      declare(encoding='ISO-8895-1')l;
      
    3. strict_types

      严格模式,开启之后会校验参数类型,不会进行默认转换

      <?php
      declare(strict_types=1); // 开启严格模式
      

    return

    如果当前文件是被include或require的,则控制交回调用文件

    如果当前文件是被include的,则return值会被当做incloude调用的返回值

    require

    出错时产生E_COMPILB_ERROR,导致脚本终止

    include

    出错时只产生警告,脚本会继续执行

    require_once

    include_once

    goto

    只能在同一个文件或左右域内,也就是无法跳出一个函数或类方法

    <?php
    start:
     
    echo 'aaa';
     
    goto start;
    

    流程控制的代替语法

    这种替代语法主要是用在与html混编的时候更方便和更好的可读性

    <?php if($a==1): ?>
    <p>One</p>
    <?php elseif($a==2): ?>
    <p>Two</p>
    <?php else: ?>
    <p>Three</p>
    <?php endif; ?>
    
    <?php while(true): ?>
    <p>Four</p>
    <?php endwhile; ?>
    
    <?php for($i=0; $i<3; $i++): ?>
    <p>Five</p>
    <?php endfor; ?>
    
    <?php foreach($a as $k=>$v): ?>
    <p>Six</p>
    <?php endforeach; ?>
    
    <?php switch($a): ?>
    <?php case 'a': ?>
    <p>Seven</p>
    <?php default: ?>
    <p>Eight</p>
    <?php endswitch; ?>
    

    相关文章

      网友评论

          本文标题:PHP流程控制

          本文链接:https://www.haomeiwen.com/subject/hceqmrtx.html