本文是复习所写,并不会涵盖一些基础知识点
if elseif else
while
do-while
for
foreach
break
可以接受一个数字参数,指定跳出几重循环,默认是1
continue
在循环结构中,跳过循环体剩余代码的执行,同样可以接受一个数字参数,指定跳过几层循环,默认是1
switch
matchPHP 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) {
// ...
}
- Ticks
Tick(时钟周期)是一个在declare
代码段中解释器每执行 N 条可计时的低级语句就会发生的事件
<?php
declare(ticks=1);
functiontickHandler()
{
echo'called!' . PHP_EOL;
}
register_tick_function('tickHandler'); // 注册事件,引起tick事件
$a=1; // 引起tick事件
if ($a>0) {
$a+=2; // 引起tick事件
}
unregister_tick_function('tickHandler'); // 取消事件
- Encoding
用来指定脚本的编码方式
<?php
declare(encoding='ISO-8895-1')l;
- 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';
gotostart;
流程控制的代替语法
这种替代语法主要是用在与html混编的时候更方便和更好的可读性
<?phpif($a==1): ?>
<p>One</p>
<?phpelseif($a==2): ?>
<p>Two</p>
<?phpelse: ?>
<p>Three</p>
<?phpendif; ?>
<?phpwhile(true): ?>
<p>Four</p>
<?phpendwhile; ?>
<?phpfor($i=0; $i<3; $i++): ?>
<p>Five</p>
<?phpendfor; ?>
<?phpforeach($aas$k=>$v): ?>
<p>Six</p>
<?phpendforeach; ?>
<?phpswitch($a): ?>
<?phpcase'a': ?>
<p>Seven</p>
<?phpdefault: ?>
<p>Eight</p>
<?phpendswitch; ?>