PHP 流程控制结构
条件
if
if (expression) {
statement
}
PHP 中,也可以不使用大括号,而使用 if endif 的语法,但很少人用。
if (expression) {
statement1
}
else {
statement2
}
if (expression1) {
statement1
}
elseif (expression2) {
statement2
}
if (expression1) {
statement1
}
elseif (expression2) {
statement2
}
elseif (expression3) {
statement3
}
else {
statement4
}
switch
switch 对 if elseif 提供了一种更优雅的语法
switch (expression1) {
case 'condition1':
statement1
break;
case 'condition2':
statement2
break;
case 'condition3':
statement3
break;
default:
statement4
break;
}
因为 case 支持不写 break 来合并条件,因此不写 break 在语法上是合法的;但如何需要使用 break 时却忘了写 break,则会导致 case 穿透到下一个条件中导致逻辑错误。
循环
实际使用中,foreach 是用的最多的。
foreach
foreach ($array as $current) {
statement
}
foreach ($array as $key => $value) {
statement
}
for
PHP 中 for 结构的理解如下
for (start; condition; increment) {
statement
}
其中,start、condition、increment 都可以是半角逗号(,)分割的语句。
for ($i = 0; $i < 10; $i++) {
// statement
}
while
while (expression) {
statement
}
do {
statement
} while (expression)
continue
PHP 中,continue 关键字会跳到下一次循环;continue 2 会跳出 2 层循环;continue n 会跳出 n 层循环(n 是整数);
break
PHP 中,break 关键字会跳出循环;break 2 会跳出 2 层循环;break n 会跳出 n 层循环(n 是整数);
其它
try catch
PHP 中,try catch 用来捕获异常,将在异常处理一节详细叙述。
try {
statement
}
catch (Exception $error) {
}
declare
基本可以用到再查阅。
- ticks: 指定执行次数
- encoding: 指定编码(仅在 --enable-zend-multibyte 编译下生效)
- strict_types:强制使用严格的数据类型。
exit
退出,停止 PHP 脚本的运行。
return
用来退出函数。
goto
goto 可以在作用域中跳跃。
goto 是一种编程语言的早期指令,实际上,上述指令可用 goto 实现,但现代应用编程中很少使用。
goto tag1;
// some statement here
tag1:
include
可以在执行 PHP 脚 本时加载一个文件,如果文件不存在,则产生一个警告。可以使用 @ 屏蔽警告,但这不是一个好习惯。
require
可以在执行 PHP 脚本时加载一个文件,如果文件不存在,则产生一个致命错误,脚本停止运行。
特殊的流程控制结构
以下有些看起来是函数,但其实它们是语言控制结构
- list()
- array()
- echo
- eval()
PHP 嵌入 Web 页面
<?php ?>
如果是一个变量,可以直接写成短标签。
<?= $a ?>