前面的话

  任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句)。语句通常以分号结束。此外,还可以用花括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本文将详细介绍各种语句类型

if语句

  if 结构是很多语言包括PHP在内最重要的特性之一,它允许按照条件执行代码片段

if (条件) {
当条件为 true 时执行的代码;
} if (条件) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
} if (条件) {
条件为 true 时执行的代码;
} elseif (条件) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}
<?php
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

switch语句

  switch语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途

  [注意]switch/case做的是松散比较

switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>

while语句

  while 循环是 PHP 中最简单的循环类型。while语句的含意很简单,它告诉 PHP 只要 while 表达式的值为 TRUE 就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行

while (expr)
statement
<?php
$i = 1;
while ($i <= 10) {
echo $i++;
} $i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>

do-while

  do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查)

do {
要执行的代码;
} while (条件为真);
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>

for语句

  for 循环是 PHP 中最复杂的循环结构。for循环语句中,初始化在循环开始前无条件求值一次,循环条件在每次循环开始前求值。如果值为true,则继续循环,执行循环体语句;如果值为false,则终止循环。递增语句在每次循环后执行

for (init counter; test counter; increment counter) {
code to be executed;
}
<?php
for ($x=0; $x<=10; $x++) {
echo "数字是:$x <br>";
}
?>

foreach

  foreach语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息

  每进行一次循环迭代,当前数组元素的值就会被赋值给$value变量,并且数组指针会逐一移动,直到到达最后一个数组元素。一般有两种方式:不取下标、取下标

  【1】只取值,不取下标

foreach ($array as $value) {
code to be executed;
} <?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>

  【2】同时取下标和值

foreach ($array as $index => $value) {
code to be executed;
}
<?php
$colors = array(
"r"=>"red",
"g"=>"green",
"b"=>"blue",
"y"=>"yellow");
/*
r:red
g:green
b:blue
y:yellow
*/
foreach ($colors as $key => $value) {
echo $key.":".$value."<br>";
}
?>

break

  break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行

  break 可以接受一个可选的数字参数来决定跳出几重循环

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* 只退出 switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* 退出 switch 和 while 循环 */
default:
break;
}
}

continue

  continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环

  continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾

$i = 0;
while ($i++ < 5) {
echo "Outer<br />\n";
while (1) {
echo "Middle<br />\n";
while (1) {
echo "Inner<br />\n";
continue 3;
}
echo "This never gets output.<br />\n";
}
echo "Neither does this.<br />\n";
}

goto

  goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break

<?php
goto a;
echo 'Foo'; a:
//'Bar'
echo 'Bar';
?>

最新文章

  1. 35个java代码性能优化。。转
  2. [转载]&quot;百度方法+&quot;案例—从持续集成到持续交付
  3. java数据库查询类
  4. hdu 5183. Negative and Positive (哈希表)
  5. void (*f(int, void (*)(int)))(int) 函数解析 转
  6. hdu 4405 Aeroplane chess(概率+dp)
  7. 微信公众号支付JSAPI网页,total_fee错误不正确,header重定向参数丢失,无法获取订单号和金额解决
  8. spring boot整合mybatis方式一
  9. 微信ChatEmoji表情适配,对微信公众号开发有帮助
  10. js中ASCII码和字符互相转换的方法
  11. Hive基础测试操作
  12. iUAP云运维平台v3.0全面支持基于K8s的微服务架构
  13. Js的那些事
  14. Linux机器学习软件配置
  15. python sqlparse 各种 token
  16. 查看Oracle数据库名和实例名的命令
  17. python多线程同步机制Semaphore
  18. log4net记录系统错误日志到文本文件用法详解(最新)
  19. 怎样查看lInux系统中的所有运行进程
  20. Selenium自动化测试之结果处理

热门文章

  1. java的poi技术写Excel的Sheet
  2. js实现div居中
  3. CSS外边距叠加问题
  4. pagination 分页
  5. JQM (功能栏、导航条)
  6. Webpack教程
  7. 【转】Apache 配置虚拟主机三种方式
  8. 基于Redis的开源分布式服务Codis
  9. 基于Entity Framework 6的框架Nido Framework
  10. 我的面板我做主 -- 淘宝UWP中自定义Panel的实现