本文是復(fù)習(xí)所寫辙浑,并不會涵蓋一些基礎(chǔ)知識點
if elseif else
while
do-while
for
foreach
break
可以接受一個數(shù)字參數(shù),指定跳出幾重循環(huán)缭贡,默認(rèn)是1
continue
在循環(huán)結(jié)構(gòu)中痢毒,跳過循環(huán)體剩余代碼的執(zhí)行嫉你,同樣可以接受一個數(shù)字參數(shù)九孩,指定跳過幾層循環(huán)名段,默認(rèn)是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
用來設(shè)定一段代碼的執(zhí)行指令
<?php
declare(ticks=1); // 方式一
// 方式二
declare(ticks=1) {
// ...
}
-
Ticks
Tick(時鐘周期)是一個在
declare
代碼段中解釋器每執(zhí)行 N 條可計時的低級語句就會發(fā)生的事件<?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
嚴(yán)格模式,開啟之后會校驗參數(shù)類型伸辟,不會進(jìn)行默認(rèn)轉(zhuǎn)換
<?php declare(strict_types=1); // 開啟嚴(yán)格模式
return
如果當(dāng)前文件是被include或require的麻惶,則控制交回調(diào)用文件
如果當(dāng)前文件是被include的,則return值會被當(dāng)做incloude調(diào)用的返回值
require
出錯時產(chǎn)生E_COMPILB_ERROR
信夫,導(dǎo)致腳本終止
include
出錯時只產(chǎn)生警告窃蹋,腳本會繼續(xù)執(zhí)行
require_once
include_once
goto
只能在同一個文件或左右域內(nèi)卡啰,也就是無法跳出一個函數(shù)或類方法
<?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; ?>