PHP流程控制

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

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; ?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值