php continue和break流程控制语名用法

 更新时间:2016年11月25日 15:09  点击:1481

continue
continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。

注: 注意在 php教程 中 switch 语句被认为是作为 continue 目的的循环结构。

continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

 

<?php
while (list($key,$value) = each($arr)) {
if ($key == "zhoz"){ // 如果查询到对象的值等于zhoz,这条记录就不会显示出来了。
continue;
}
do_something ($value);
}
//  例子2
foreach ($list as $temp) {
if ($temp->value == "zhoz") {
continue; // 如果查询到对象的值等于zhoz,这条记录就不会显示出来了。
}
do_list; // 这里显示数组中的记录
}
?>

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

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

<?php
$arr = array ('one', 'two', 'three', 'four', 'stop', 'five');
while (list (, $val) = each ($arr)) {
   if ($val == 'stop') {
       break;    /* you could also write 'break 1;' here. */
   }
   echo "$val<br>n";
}

/* using the optional argument. */

$i = 0;
while (++$i) {
   switch ($i) {
   case 5:
       echo "at 5<br>n";
       break 1;  /* exit only the switch. */
   case 10:
       echo "at 10; quitting<br>n";
       break 2;  /* exit the switch and the while. */
   default:
       break;
   }
}
?>

实例二

 

<?php
$i = 0;
while ($i < 7) {
if ($arr[$i] == "stop") {
break;
}
$i++;
}
?>

foreach

php教程 4(不是 php 3)包括了 foreach 结构,和 perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。


foreach (array_expression as $value) statement
foreach (array_expression as $key => $value) statement


 

 

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。


注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

 

注: 此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each() 的构造,原数组指针也没有变,数组单元的值也不受影响。

 

注: foreach 不支持用“@”来禁止错误信息的能力。


你可能注意到了以下的代码功能完全相同:


<?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $value) = each ($arr)) {
   echo "value: $value<br>n";
}

foreach ($arr as $value) {
   echo "value: $value<br>n";
}
?> 


以下代码功能也完全相同:

<?php
reset ($arr);
while (list($key, $value) = each ($arr)) {
   echo "key: $key; value: $value<br>n";
}

foreach ($arr as $key => $value) {
   echo "key: $key; value: $value<br>n";
}
?> 

 

示范用法的更多例子:

 

<?php
/* foreach example 1: value only */

$a = array (1, 2, 3, 17);

foreach ($a as $v) {
   print "current value of $a: $v.n";
}

/* foreach example 2: value (with key printed for illustration) */

$a = array (1, 2, 3, 17);

$i = 0; /* for illustrative purposes only */

foreach ($a as $v) {
   print "$a[$i] => $v.n";
   $i++;
}

/* foreach example 3: key and value */

$a = array (
   "one" => 1,
   "two" => 2,
   "three" => 3,
   "seventeen" => 17
);

foreach ($a as $k => $v) {
   print "$a[$k] => $v.n";
}

/* foreach example 4: multi-dimensional arrays */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
   foreach ($v1 as $v2) {
       print "$v2n";
   }
}

/* foreach example 5: dynamic arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
   print "$vn";
}
?> 


for
for 循环是 php 中最复杂的循环结构。它的行为和 c 语言的相似。 for 循环的语法是:

 

for (expr1; expr2; expr3) statement


 

 

第一个表达式(expr1)在循环开始前无条件求值一次。

expr2 在每次循环开始前求值。如果值为 true,则继续循环,执行嵌套的循环语句。如果值为 false,则终止循环。

expr3 在每次循环之后被求值(执行)。

每个表达式都可以为空。expr2 为空意味着将无限循环下去(和 c 一样,php 认为其值为 true)。这可能不想你想象中那样没有用,因为你经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。

考虑以下的例子。它们都显示数字 1 到 10:

 

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
   print $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
   if ($i > 10) {
       break;
   }
   print $i;
}

/* example 3 */

$i = 1;
for (;;) {
   if ($i > 10) {
       break;
   }
   print $i;
   $i++;
}

/* example 4 */

for ($i = 1; $i <= 10; print $i, $i++);
?> 

当然,第一个例子看上去最正常(或者第四个),但你可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

php 也支持用冒号的 for 循环的替代语法。

 

for (expr1; expr2; expr3): statement; ...; endfor;


 

 

其它语言具有 foreach 语句来遍历数组或散列表,php 也行(见 foreach)。在 php 3 中,可以结合 list() 和 each() 函数用 while 循环来达到同样效果。例子见这些函数的文档。


do..while
do..while 和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do..while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 false 则整个循环立即终止)。

do..while 循环只有一种语法:


<?php
$i = 0;
do {
   print $i;
} while ($i > 0);
?> 

 

以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为 false($i 不大于 0)而导致循环终止。

资深的 c 语言用户可能熟悉另一种不同的 do..while 循环用法,把语句放在 do..while(0) 之中,在循环内部用 break 语句来结束执行循环。以下代码片段示范了此方法:

 

<?php
do {
   if ($i < 5) {
       print "i is not big enough";
       break;
   }
   $i *= $factor;
   if ($i < $minimum_limit) {
       break;
   }
   print "i is ok";

   /* process i */

} while(0);
?> 

如果你还不能立刻理解也不用担心。即使不用此“特性”你也照样可以写出强大的代码来。


while
while 循环是 php 中最简单的循环类型。它和 c 语言中的 while 表现得一样。while 语句的基本格式是:

 

while (expr) statement


 

 

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

和 if 语句一样,可以在 while 循环中用花括号括起一个语句组,或者用替代语法:

 

while (expr): statement ... endwhile;


 

 

下面两个例子完全一样,都显示数字 1 到 10:

 

<?php
/* example 1 */

$i = 1;
while ($i <= 10) {
   print $i++;  /* the printed value would be
                   $i before the increment
                   (post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
   print $i;
   $i++;
endwhile;
?> 

array()可以声明一个空数组;
array[] = $value 在数组存在时,追加一个数据;在数组不存时,生成一个数组,并追加数据。
array[$index] = $value 在数组存在时,追加或修改一个数据;在数组不存时,生成一个数组,并追加数据

range($n, $m); 指定值的范围。如range(2,4)生成数组 array(2,3,4)。
count($array); 取得数组的大小。
array_pad($array, $length, $value); 返回一个长度$length的数组,原不足数组补值为$value,长度足够返回原数组。

 

 代码如下 复制代码
// 声明数组
$test01 = array();
// 追加数据
$test01[] = "a";        // array(0 => "a");
// 追加一个索引为"a",数据为"b"的数据
$test01["a"] = "b";       // array(0 => "a", "a" => "b");
// 修改索引为0的数据
$test01[0] = "c";       // array(0 => "c", "a" => "b");
// 另一种声明方法
$test02 = array("a", "b", "c");         // array(0 => "a", 1 => "b", 2 => "c");
// 虽然声明了一个字符串索引的数据,但默认索引还是从0开始
$test03 = array("a" => "a", "b", "c");  // array("a" => "a", 0 => "b", 1 => "c");
// 声明中最大的索引为2,虽然最近是索引是0,但默认索引还是从3开始
$test04 = array(2 => "a", 0=>"b", "c");  // array(2 => "a", 0 => "b", 3 => "c");
// 声明一个小数索引会取其整数部分;指定索引时,会修改之前声明的值
$test05 = array("a", 2.7=>"b", 0=>"c");  // array(0 => "c", 2 => "b");
// 虽然声明了负数索引,但默认索引还是从0开始
$test06 = array(-2 =>"a", "b", "c");  // array(-2 => "a", 1 => "b", 2 => "c");
// 多维数组的定义


$test07 = array($test01, $test02, $test03);
php的数组,说白了,就是关联数据每一条数组都是以[索引,值]的形式保存的。其中索引默认是以0开始的数字。在未指定索引时,php会从0开始自动生成索引。当指定一个索引,php会从你指定索引最大正整数的下一个整数开始。如果你指定的是小数,php会取整数部分做为索引。

1、使用post方法提交表单
    使用方法:把<from>表单中的method标签属性改为“post”
    特点:post方法不依赖于url,不会再地址栏显示。post方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性高。
    用于:适用于发送一些保密的或者容量较大的数据到服务器。
    实例: 

<form name=”from1′ method=”get” action=”index.php教程”>
订单号:<input type=”text” name=”user” size=”20′>
<input type=”submit” name=”submit” value=”提交”>
</form>


显示结果:
 
post提交不在url上显示提交表单的值 

 

 2、使用get方法提交表单
$_get 变量是一个数组,内容是由 http get 方法发送的变量名称和值。

$_get 变量用于收集来自 method="get" 的表单中的值。从带有 get 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。


    使用方法:把<from>表单中的method标签属性改为“get”
    特点:使用get方法提交表单数据将附加到url上,并作为url的一部分发送到服务器,在url上会显示传递数据的内容

    形式:http://url?name1=value1&name2=value2…
    url:为表单响应地址
    name1:为表单元素名称
    value1:为name1表单的值
    $:多个表单元素间的分隔符
    实例:

 

<form name=”from1′ method=”get” action=”index.php”>
用户名:<input type=”text” name=”user” size=”20′>
密码:<input name=”pwd” type=”password” size=”20′ >
<input type=”submit” name=”submit” value=”提交”>
</form>
输出结果:
 


 
使用get方式提交表单数据  


     从上面两点中我们能了解到两种提交方式有着两种截然不同的数据传输模式,使用post提交表单中的数据,数据信息完全在后台传输,不会显示在浏览器的url信息中。而get提交表单中的数据,则会在url中显示传递数据的值。今天对于这两种数据提交方法就介绍到这里


注释:http get 方法不适合大型的变量值;值是不能超过 100 个字符的。
$_request 变量
php 的 $_request 变量包含了 $_get, $_post 以及 $_cookie 的内容。

php 的 $_request 变量可用来取得通过 get 和 post 方法发送的表单数据的结果。

例子
welcome <?php echo $_request["name"]; ?>.<br />
you are <?php echo $_request["age"]; ?> years old!

    复选框能够进行项目的多项选择,浏览者在填写一些表单时,有时需要选择多个项目(如:兴趣爱好等)
    复选框一般是多个同时存在,为了便于传值,name的名字可以定义为数组形式:<input type=”checkbox” name=”chkbox[]” value=”chkbox1′>
    在返回页面中可以用count()函数计算数组的大小,结合for循环语句输出选择的复选框的值

<?php教程
  if(($_post[mrbook]!= null)){
   echo “您选择的结果是:”;
   for($i = 0;$i<count($_post[mrbook]);$i++)
    echo $_post[mrbook][$i].”&nbsp;&nbsp;”;  //循环输出用户选择的图书类别
  }
?>


<form name=”form1′ method=”post” action=”index.php”>
<table width=”445′ cellpadding=”0′ cellspacing=”0′>
  <tr>
    <td width=”443′ height=”41′ align=”center” valign=”top”>
     您喜欢的图书类型:
       <input type=”checkbox” name=”mrbook[]” value=”入门类”>
     入门类
     <input type=”checkbox” name=”mrbook[]” value=”案例类”>
        案例类
        <input type=”checkbox” name=”mrbook[]” value=”讲解类”>
        讲解类
        <input type=”checkbox” name=”mrbook[]” value=”典型实例类”>
      典型实例类
      <br>
      <input type=”submit” name=”submit” value=”提交”></td>
  </tr>
</table>
</form>

获取文本框、密码域、隐藏域、按钮、文本域的值
    获取文本框、密码域、隐藏域、按钮、文本域的值的方法都是相同的,都是使用name属性来获取想用的value值。所以在定义name值时尽量不要重复,以免获取错误的值。
    下面我们通过一个实例来说明用$_post[]获取获取文本框、密码域、隐藏域、按钮、文本域的值的具体方法:

实例代码:

<?php
if($_post["submit"]==”登陆”){     //判断是否提交信息
 echo”您输入的密码为:”.$_post[user].”<br>密码为:”.$_post[pw];   //输入提交数据
}
?>

  <form action=”index.php” method=”post” name=”zero”>   //建立form表单
  用户名:<input type=”text” name=”user” size=”20′/><br>
  密码:<input type=”password” name=”pw” size=”20′/><br>
  <input type=”submit” name=”submit” value=”登陆”/>
</form>
显示结果:
您输入的密码为:zero
密码为:123456

用户名:
 密码:
 

    二、获取单选框按钮的值
    radio单选框按钮一般是成组出现的,具有相同name值和不同的value值,在一组单选按钮中同一时间只能选中一个值。
    下面通过具体的实例来解释如何获取单选框的值

实例代码:

<?php
if($_post["submit"]==”提交”){   //判断是否提交数据
 echo”您的性别是:”.$_post["sex"];
}
?>
 <form action=”index.php” method=”post” name=”zero”>
性别:
<input type=”radio” name=”sex” value=”男” checked />男
<input type=”radio” name=”sex” value=”女”/>女
<input type=”submit” name=”submit” value=”提交”/>
</form>


输出结果:
您的性别是:男

[!--infotagslink--]

相关文章

  • python-for x in range的用法(注意要点、细节)

    这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10
  • gin 获取post请求的json body操作

    这篇文章主要介绍了gin 获取post请求的json body操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-15
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • phpmyadmin config.inc.php配置示例

    phpmyadmin config.inc.php配置示例...2013-09-29
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • Javascript for in的缺陷总结

    这篇文章主要介绍了Javascript for in的缺陷总结的相关资料,需要的朋友可以参考下...2017-02-08
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • Mybatis plus中使用in查询出错如何解决

    这篇文章主要介绍了Mybatis plus中使用in查询出错的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-06
  • iscroll.js 用法介绍

    最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
  • 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的...2015-10-21
  • phpMyadmin创建数据库和设置用户权限图解

    phpmyadmin是一款很不错的WEB对mysql数据库管理软件,如果你想创建数据库与设置用户权限我们必须操作用户的很高的权限,如ROOT权限,下面我来给大家介绍介绍。 先来配...2016-11-25
  • C++中cin的用法详细

    这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • C#中的try catch finally用法分析

    这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • vue-admin-template配置快捷导航的代码(标签导航栏)

    这篇文章主要介绍了vue-admin-template配置快捷导航的方法(标签导航栏),本文通过实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-04
  • 修改mysql密码phpmyadmin不能登录

    出现phpmyadmin不能登录是我在修改我mysql服务器密码之后导致的,后来百度了相关的原因,原来是修改了mysql密码之后我们还需要在phpmyadmin目录中去修改config.inc.php中...2016-11-25
  • 使用jQuery.Pin垂直滚动时固定导航

    这篇文章主要为大家详细介绍了使用jQuery.Pin垂直滚动时固定导航的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-27