本文是温习所写,并不会涵盖一些根底知识点
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) {// ...}
-
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'); // 勾销事件
-
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';
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; ?>