前面的话

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

if语句

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

  1. if (条件) {
  2. 当条件为 true 时执行的代码;
  3. }
  4.  
  5. if (条件) {
  6. 条件为 true 时执行的代码;
  7. } else {
  8. 条件为 false 时执行的代码;
  9. }
  10.  
  11. if (条件) {
  12. 条件为 true 时执行的代码;
  13. } elseif (条件) {
  14. 条件为 true 时执行的代码;
  15. } else {
  16. 条件为 false 时执行的代码;
  17. }
  1. <?php
  2. $t=date("H");
  3. if ($t<"10") {
  4. echo "Have a good morning!";
  5. } elseif ($t<"20") {
  6. echo "Have a good day!";
  7. } else {
  8. echo "Have a good night!";
  9. }
  10. ?>

switch语句

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

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

  1. switch (expression)
  2. {
  3. case label1:
  4. code to be executed if expression = label1;
  5. break;
  6. case label2:
  7. code to be executed if expression = label2;
  8. break;
  9. default:
  10. code to be executed
  11. if expression is different
  12. from both label1 and label2;
  13. }
  1. <?php
  2. switch ($x)
  3. {
  4. case 1:
  5. echo "Number 1";
  6. break;
  7. case 2:
  8. echo "Number 2";
  9. break;
  10. case 3:
  11. echo "Number 3";
  12. break;
  13. default:
  14. echo "No number between 1 and 3";
  15. }
  16. ?>

while语句

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

  1. while (expr)
  2. statement
  1. <?php
  2. $i = 1;
  3. while ($i <= 10) {
  4. echo $i++;
  5. }
  6.  
  7. $i = 1;
  8. while ($i <= 10):
  9. print $i;
  10. $i++;
  11. endwhile;
  12. ?>

do-while

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

  1. do {
  2. 要执行的代码;
  3. } while (条件为真);
  1. <?php
  2. $i = 0;
  3. do {
  4. echo $i;
  5. } while ($i > 0);
  6. ?>

for语句

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

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

foreach

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

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

  【1】只取值,不取下标

  1. foreach ($array as $value) {
  2. code to be executed;
  3. }
  4.  
  5. <?php
  6. $colors = array("red","green","blue","yellow");
  7. foreach ($colors as $value) {
  8. echo "$value <br>";
  9. }
  10. ?>

  【2】同时取下标和值

  1. foreach ($array as $index => $value) {
  2. code to be executed;
  3. }
  1. <?php
  2. $colors = array(
  3. "r"=>"red",
  4. "g"=>"green",
  5. "b"=>"blue",
  6. "y"=>"yellow");
  7. /*
  8. r:red
  9. g:green
  10. b:blue
  11. y:yellow
  12. */
  13. foreach ($colors as $key => $value) {
  14. echo $key.":".$value."<br>";
  15. }
  16. ?>

break

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

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

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

continue

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

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

  1. $i = 0;
  2. while ($i++ < 5) {
  3. echo "Outer<br />\n";
  4. while (1) {
  5. echo "Middle<br />\n";
  6. while (1) {
  7. echo "Inner<br />\n";
  8. continue 3;
  9. }
  10. echo "This never gets output.<br />\n";
  11. }
  12. echo "Neither does this.<br />\n";
  13. }

goto

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

  1. <?php
  2. goto a;
  3. echo 'Foo';
  4.  
  5. a:
  6. //'Bar'
  7. echo 'Bar';
  8. ?>

前端学PHP之语句的更多相关文章

  1. 从头开始学JavaScript (六)——语句

    原文:从头开始学JavaScript (六)--语句 一.条件分支语句:if 基本格式: if (<表达式1>){    <语句组1>}else if (<表达式2> ...

  2. 前端学做 PPT

    前端学做 PPT 公司做技术分享.年终总结都需要用到ppt. 要快速.省事的做出高质量的 ppt,一方面需要熟练使用制作 ppt 的工具,另一方面得知道用工具做成什么样子才是好作品.前者比较简单,后者 ...

  3. 前端学PHP之PDO预处理语句

    × 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保 ...

  4. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  5. 前端学PHP之自定义模板引擎

    前面的话 在大多数的项目组中,开发一个Web程序都会出现这样的流程:计划文档提交之后,前端工程师制作了网站的外观模型,然后把它交给后端工程师,它们使用后端代码实现程序逻辑,同时使用外观模型做成基本架构 ...

  6. 前端学PHP之Smarty模板引擎

    前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进. ...

  7. 前端学HTTP之web攻击技术

    前面的话 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标.本文将详细介绍攻击web站点 ...

  8. 前端学HTTP之网关、隧道和中继

    前面的话 Web是一种强大的内容发布工具.人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面.Web浏览器为用户提供了一种统一的方式来访问因特网上的内 ...

  9. 前端学HTTP之数据传输

    × 目录 [1]客户机处理 [2]集线器处理 [3]路由器1处理[4]路由器2处理[5]交换机处理[6]服务器处理[7]反向传输 前面的话 上一篇中,介绍了网络基础.本文将详细介绍客户机在浏览网页ab ...

随机推荐

  1. [Protobuf] Mac系统下安装配置及简单使用

    Mac下Protobuf安装 Protobuf源码Github地址: https://github.com/google/protobuf 配置环境教程: https://github.com/goo ...

  2. centos7 解决ftp和apache运行目录权限冲突问题

    1.将ftp用户加入到apache用户组 usermod -a -G apache ftpadmin ftpadmin 为ftp用户 2.设置网站根目录/var/www的所有组为apache chow ...

  3. normalize.css入门和下载

    CSS Reset 是革命党,CSS Reset 里最激进那一派提倡不管你小子有用没用,通通给我脱了那身衣服,凭什么你 body 出生就穿一圈 margin,凭什么你姓 h 的比别人吃得胖,凭什么你 ...

  4. Android 怎么退出整个应用程序?

    方法一: 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序 ...

  5. ubuntu环境下vmware取消自动启动服务

    概述其实vmware这个服务取不取消,影响不大,主要是我有强迫症,在不用虚拟机的时候,看着vmware占着进程真心不爽,想要解决这个问题,在用虚拟机的时候启动服务,反之,则停.接下来,我说一下实现吧. ...

  6. Android6.0动态获取权限

    Android6.0采用新的权限模型,只有在需要权限的时候,才告知用户是否授权,是在runtime时候授权,而不是在原来安装的时候 ,同时默认情况下每次在运行时打开页面时候,需要先检查是否有所需要的权 ...

  7. Hibernate4 实例

    一.hibernate需要的配置文件 首先hibernate中有两种xml文件. .cfg,xml文件负责配置连接数据库的信息.指定映射类.指定hbm映射文件. .hbm.xml文件负责配置持久化类和 ...

  8. Javascript 小技能

     /* @@截取字符串长度,汉字算2个字符 @@return [string]+'...' */ var subString = function(str, len) {     var newLen ...

  9. windows下C++高精度计时

    写代码时,经常会计算某一段代码的运行时间,以下提供一个微秒级别的类供参考 class CTimeCost { public: CTimeCost(const string &str) : m_ ...

  10. HTML学习有感

    自从到大三之后一直在纠结课下去学些什么,刚开始一直在学PS,当时学的还算可以,可以一段时间不用之后就忘记了,这使我很郁闷!之后一直想学JAVA,跟已经工作的同学讨来了相关的视屏资料以及他培训时的笔记: ...