php 流程控制语句

 更新时间:2016年11月25日 15:07  点击:1326
本文章要讲到了php 两种流程判断语句,有switch语句和if else ,if()语句,下面我们来详细的看看实例吧。

 

 代码如下 复制代码
switch(variable){
case value1:
statement1;
break;
case value2:

default:
defulat statement;
}

switch语句根据variable的值,依次与case中的value值相比较,如果不相等,继续查找下一个
case;如果相等,就执行对应的语句,直到switch语句结束或者遇见break为止。

 代码如下 复制代码
<?php
switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
}
?>

实例二

 代码如下 复制代码

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
}
?>


实例三

 代码如下 复制代码

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i is less than 3 but not negative";
    break;
case 3:
    echo "i is 3";
}
?>

if…else语句只能选择两种结果:要么执行真,要么执行假。但现在有2种以上的选择该怎么办
呢?这时,可以使用esleif(也可以写作else if)语句来执行,该语法格式为:

 代码如下 复制代码
if(expression1){
statement1;
}else if(expression2){
statement2;
}

else{
statementn;
}

实例

 代码如下 复制代码
<?php
$moth = date(“n”);
$today = date(“j”);
if($today >= 1and $today <= 10){
echo’今天是’.$moth.’月’.$today.’日上旬’;
}elseif ($today >10 and $today <=20){
echo’今天是’.$moth.’月’.$today.’日中旬’;
}else{
echo’今天是’.$moth.’月’.$today.’日下旬’;
}
?>

如果当前日期是周五,下面的例子会输出 "Have a nice weekend!",如果是周日,则输出 "Have a nice Sunday!",否则输出 "Have a nice day!":

 代码如下 复制代码

<html>
<body>

<?php
$d=date("D");
if ($d=="Fri")
  echo "Have a nice weekend!";
elseif ($d=="Sun")
  echo "Have a nice Sunday!";
else
  echo "Have a nice day!";
?>

</body>
</html>

在php中循环语句我们常用的就几种,while,do while ,for(),foreach这四种,也是大家开发中常用到的循环语句了,有需要的朋友可以参考一下,本教程一一来讲一下这种语句的用法。

Foreach语句
Foreach循环是php4.0引进来的,只能用于数组。在php5中,又增加了对对象的支持。该语句的语法格式为:
foreach(array_expression as $value)
statement;

 代码如下 复制代码

Foreach(array_expression as $key => $value)
statement;


FOREACH ($array_variable as $value)
{
  [code to execute]
}

or

FOREACH ($array_variable as $key => $value)
{
  [code to execute]
}

在这两种情况下,多次[代码执行]将被处死是等于在$ array_variable数组元素的个数。

让我们来看一个例子。假设我们有下面的代码段:

 

 代码如下 复制代码

$array1 = array(1,2,3,4,5);
FOREACH ($array1 as $abc)
{
  print "new value is " . $abc*10 . "<br>";
}

输出结果

new value is 10
new value is 20
new value is 30
new value is 40
new value is 50

foreach循环以上经历了所有5个元素的数组$ array1,每次打印出一份声明中含有10倍的数组元素的值。
foreach作用是遍历当前数组的所有值出来并且赋给$var

再来看一个foreach 对多维数据操作实例

 代码如下 复制代码

 $s = array(array(1,2),array(3,4),array(5,6));
 foreach( $s as $v => $_v )
  {
   foreach( $_v as $vc => $_vc )
   {
    echo $_vc[0],'|'.$_vc[1],'<br />';
   //print_r($_vc);
   }
  }


更多详细内容请查看:http://www.111cn.net/phper/18/foreach-foreach.htm


for语句

最基于的遍历

 代码如下 复制代码

<?php
/* example 1 */

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

/* example 2 */

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

/* example 3 */

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

/* example 4 */

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


遍历数组

 代码如下 复制代码

<?php
/*
* This is an array with some data we want to modify
* when running through the for loop.
*/
$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412),
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0; $i < sizeof($people); ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

下面再看while 与do while
While循环是php中最简单的循环语句,他的语法格式是:

 代码如下 复制代码
While (expression){
statement;
}

当表达式expression的值为真时,将执行statement语句,执行结束后,再返回到expression表达式继续进行判断。直到表达式的值为假时,才跳出循环。

 

 代码如下 复制代码

<?php
/* example 1 */

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

/* example 2 */

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


Do…While语句
While语句还有一种形式的表示,Do…While.语法为:
Do{
statement;
}While(expression);
两者的区别在于:Do…While语句要比While语句多循环一次。
当While表达式的值为假时,While循环直接跳出当前循环,而Do…While语句则是先执行一遍程序块,然后再对表达式进行判断。


实例

 代码如下 复制代码

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

    /* process i */

} while (0);
?>

在php中list函数的作用是把数组中的值赋给一些变量,这样在简单的数据操作时我们就可以利用list来实现 哦,有需的可以参考一下。

注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

例子 1. list() 例子

 代码如下 复制代码
<?php
 
$info = array('coffee', 'brown', 'caffeine');
 
// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.n";
 
// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.n";
 
// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!n";
 
?>

例子 2. 使用 list() 的例子

 代码如下 复制代码
<table>
<tr>
  <th>Employee name</th>
  <th>Salary</th>
</tr>
 
<?php
 
$result = mysql_query("SELECT id, name, salary FROM employees",$conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    echo " <tr>n".
         "  <td><a href="info.php?id=$id">$name</a></td>n".
         "  <td>$salary</td>n".
         " </tr>n";
}
 
?>
 
</table>

警告
list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。是以相反顺序赋值的。

例子 3. 在 list() 中使用数组索引

 代码如下 复制代码
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>

产生如下输出(注意单元顺序和 list() 语法中所写的顺序的比较):

 代码如下 复制代码

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

这是今天有个SB客户要我查错误,他又不给错误提示信息,突然想起一个办法那就是在mysql数据库查询类里面的出错处理中加个错误日志记录功能,这个只要我们查看这个文件就知道错误的sql语句。
 代码如下 复制代码

<?

function putFile($file_name,$file_string)
{
    if($f=fopen($file_name,"a+"))
    {
        fwrite($f, $file_string.date("Y-m-d H:i:s")."nr");
    }
    fclose($f);
}

$string ='aadb';
putFile( $logfile='logfile.txt',$string );
?>

今天详细的介绍一下str_replace()字符替换函数,有需要的朋友可以参考一下。
 代码如下 复制代码

<?php
$str = "当所有的人[逗]离开我的时候[逗]你劝我要耐心等候[句]";
//第一种方法
echo "原字符串:".$str."<br />";
echo "使用str_replace()函数进行替换:".str_replace('[','(',$str)."<br />";//第一个参数要替换的字符,第二个参数写要替换成的字符,第三个写原字符串
echo "使用str_replace()函数进行替换:".str_replace(']',')',$str)."<br />";

//第二种方法
echo "原字符串:".$str."<br />";
$str1=array('[逗]','[句]');
$str2=array(',','。');
echo "使用str_replace()函数进行替换:".str_replace($str1,$str2,$str)."<br />";

//第三种方法
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
echo "使用str_replace()函数进行替换:".str_replace($vowels, "", "Hello World of PHP")."<br />";

?>

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • 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
  • C#条件语句、循环语句(if、while)

    这篇文章主要介绍了C#条件语句、循环语句(if、while)的用法,学习c#的朋友可以参考下...2020-06-25
  • PHP编程 SSO详细介绍及简单实例

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

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • c# 循环语句的使用方法

    这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • Mysql 原生语句中save or update 的写法汇总

    背景&#8195;&#8195;在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢? &#8195;...2015-03-15
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • jquery if条件语句的写法

    下面小编就为大家带来一篇jquery if条件语句的写法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
  • 如何利用JavaScript编写更好的条件语句详解

    这篇文章主要给大家介绍了关于如何利用JavaScript编写更好的条件语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-10
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
  • thinkPHP中多维数组的遍历方法

    这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06