布尔型循环就是为真的时候执行,为假的时候停止

注意:
1.循环能够节约大量的代码,提高重用性质
2.循环,一定要有退出条件。
3.While循环中,在while循环之前必须对变量进行初始化;

单层循环:语法结构

While(bool判断){
Echo '要循环的代码'; //可以是一条语句,也可以是多条语句;
}
<?php
$a=0; //对变量初始化设置
while($a<3){
echo:'今天天气真好<br>';
echo $a++;
} ?>

多层循环:语法结构

While(bool判断)
{
while(bool判断){
第二层循环的代码;
}
第一层要循环的代码;
}

注意:
在循环里再套循环。一般循环,不会超过二层。

使用while双层循环输出一个10行10列的表格:

<?php
$i=0
echo '<>table border="1" width="800">';
while ($i<10) {
if($i%2!=0){
echo '<tr bgcolor="#898989">';
}else{
echo '<tr>'; }
$j=0;
while ($j<10) {
echo '<td>'.$j.'</td>';
$j++;
}
echo '</tr>';
$i++
} echo '</table>'; ?>

使用while单层循环输出一个10行10列的表格:

<?php
echo '<table border="1" width="800">';
$i=0;
while ($i<100) { //这里要为100才可以
if ($i%10==0) {
if ($i%20!=0) { //也可以写if($i/10%2!=0)
echo '<tr bgcolor="#898989">'; //隔行变色
}else {
echo '<tr>';
}
}
echo '<td>'.$i.'</td>';
if ($i%10==9) { //这里要是19、29、39、49....99的时候输出<tr>
echo '</tr>';
}
$i++;
}
echo '</table>';
?>

do { } while { }循环:

<?php
$i=0;
do {
echo '需要可执行代码';
} while ($i<10);
?>

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

计数器循环

例子1:初始化变量

<?php

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

例子2:退出条件

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

例子3:循环添加,自增自减等

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

例子4:

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

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

语法:

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。

使用循环遍历数组:

$arr[$i]:获得数组中对应键的值
count() - 计算数组中的单元数目或对象中的属性个数

$arr=array(1,2,3,4,5,6,7,8,9,);
echo count($arr); //统计数组中的元素的个数

扩展:

PHP是它是解释型语言,它的效率相对较低。对于循环时的count每次都会count这样的话,效率很低。
我们可以将,统计到的数值,直接赋值给一个变量,判断这个变量就可以了,减少统计次数。
提前 $j 到前面

for($i=0,$j=count($aray);$i<$j;$i++){
echo '金融跟每个人相关'.$array[$i].'<br>';
}
<?php
$arr=array("张三","李四"); for ($i=0; $j=count($arr);$i<$j;$i++){
echo $arr[$i].'<br>'; } ?>

【重点】使用循环遍历目录

首先需要掌握的函数有:
opendir — 打开开一个目录,返回一个资源类型,如果成功则返回目录句柄的 resource,失败则返回 FALSE 并且报错 使用@抑错
Is_dir — 判断给定的文件名是否是一个目录;
Closedir — 关闭目录,传入一个打开的目录资源
Readdir — 【 NOTICE:填入一个已经用opendir打开的文件目录资源】

传进一个目录资源,返回打开的目录名称,读一次向下移动一次,读到目录的最后一个文件后,返回false
Count — 可以统计数组当中的元素个数【此函数的别名:sizeof() 】
 
例子:

<?php
$dir='c:\xmzncc';
$tkp=opendir($dir);
var_dump($tkp); while ($filename=readdir($tkp)) {
echo $filename.'<br>'; }
closedir($tkp);
?>

函数分为:自定义函数及系统函数

自定函数的基本语法格式:

 <?php
function 名字(参数1[=值],参数2[=值],…..参数n[=值]){
做事情的代码 //return ;
} ?>

命名函数需要注意的事项:

1.名字不能重复,不能重名。
2.函数就是一条狗,不叫它名字,它不执行。
3.函数不要重名,即使是系统函数
4.函数不能以数字开始,数字可以接到中间和结尾
5.不能接特殊符号,下划线除外
6.函数在命名的时候,只有数字,字母,下划线
7.函数名不区分大小写
8.函数可以在任意位置调用【注意】

函数里return和echo的区别:
在函数里面,echo一个值仅仅会输出,调用函数的时候,输出的值不会赋值给变量$a
Return 是将return 后面的值,返回到调用处。

例子:

<?php
function seven(){ echo '夏末终年'; }
$a=seven();
var_dump($a);
?>

注释:
$a=seven( ) //这里的函数是echo一个值的作用仅仅是输出 函数里echo 后的代码

这是 函数没有返回值 只有一个功能 输出的值不能赋给变量 var_dump($a) 为空; NULL

(Return 后的值会返回调用处)此时值可以赋给变量 ,此时$a变量的值和类型由return 返回的值得类型决定 。

函数的形参及实参:

<?php
Function demo( $one , $two ){ //$one 及 $two 为形参 return $one+$two;
} $t= demo ( 8, 9 ); //传入的 8 和 9为实参 并把函数 计算 8+9的值赋给$t
?>

注意:
1.如果调用一个函数的时候,函数当中有形参,形参当中没有默认值,你就必须要传实参,否则报错。
2.神马叫形参当中木有默认值?
3.如果形参有默认值,并且在实参当中没有传参数,就按照默认值来执行。如果加上了实参,就按照实参来执行。

注意:
由于它一一对应的关系,由于它的语法特性,不能将有默认值的用逗号直接跳过去。因此,我们在写的时候,将有默认值的放到后面,无默认值的形参放到前面。

PHP流程控制(二)的更多相关文章

  1. Java中的流程控制(二)

    关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...

  2. Swift学习——格式控制符和元组流程控制(二)

    Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...

  3. 流程控制<二>

    上一篇:Numbers.Strings.Lists 笔记<一>下一篇:数据结构-Python3.7<三> 如果需要修改迭代中的数据,建议先赋值一个副本(e.g:序列,切片复制的 ...

  4. SpringMVC(二)——流程控制

    SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器). 一,首先 ...

  5. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  6. C#基础课程之二变量常量及流程控制

    课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...

  7. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

  8. JavaScript (二) js的基本语法 - - 运算符、流程控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.运算符 1.一元运算符 ++ -- 都是运算符 ++ 和 -- 可以分为:前+ 和后+ and 前- ...

  9. java 基本语法(五) 流程控制(二) 循环结构

    1.循环结构的四要素① 初始化条件② 循环条件 --->是boolean类型③ 循环体④ 迭代条件说明:通常情况下,循环结束都是因为②中循环条件返回false了. 2.三种循环结构:2.1 fo ...

  10. flutter--Dart基础语法(二)流程控制、函数、异常

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

随机推荐

  1. 最受欢迎的5个Android ORM框架

    在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...

  2. SSH应该使用密钥还是密码?

    关于SSH,几乎每个人都同意密钥要优于密码,更安全,并且更先进,但我并不同意这个观点. 虽然密钥的确可以更好,但它有着还没被意识到的严重风险,并且我认为比得到妥善管理的密码更不安全. 通常密钥更好的理 ...

  3. php Late Static Bindings延迟静态绑定

    官网说道: As of PHP 5.3.0, PHP implements a feature called late static bindings which can be used to ref ...

  4. maven打包源代码sources.jar和javadoc.jar帮助文档

    maven中如何打包源代码 *-sources.jar 方式一 :   命令行方式 进入cmd命令行,进入项目工程pom.xml所在路径目录,运行mvn source:jar 和 mvn javado ...

  5. ZJOI2010网络扩容

    无限orz hzwer神牛…… 第一问很简单,按数据建图,然后一遍最大流算法即可.     第二问则需要用最小费用最大流算法,主要是建图,那么可以从第一问的残留网络上继续建图,对残留网络上的每一条边建 ...

  6. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service

    一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...

  7. Parallel for loops in .NET C# z

    The start index: this is inclusive, i.e. this will be the first index value in the loop The end inde ...

  8. log4net使用的一点心得

    关于使用log4net的文章很多,把自己在使用中查到的文章列一下. log4net 可以存在很多地方 比如console,数据库.邮箱.文本等等.我要实现的是 所有的日志都记录到html文件中,可以按 ...

  9. ASIHTTPRequest 编码问题

    今天在模拟登陆时,中文的用户名一直登陆不上,对用户名进行了各种转码还是不能解决. 在这个问题上一直卡了半个多小时,最终才发现根本不是用户名的编码问题,而是使用的第三方网络插件的ASIHTTPReque ...

  10. javascript设计模式3

    门户大开式对象 var Book=function(isbn,title,author){ if (isbn==undefined) throw new Error("不合法"); ...