php if else swicth条件控制语句学习笔记
在php语言中,基本的流程控制结构有:顺序结构、分支结构、循环结构。
常用的控制语句主要有:
if、if…else判断语句
switch 分支语句
while、do…while循环语句
for 循环语句
break、continue中断语句
php if语句是一个简单的判断语句,即是实现条件判断的功能。当程序执行一段语句时,遇到二岔路口,通过判断语句的值是否满足条件而选择执行相对应的语句。所以if语句是最基本的php条件表达式。
基本结构为:
if(判断语句)
{
执行语句体
}
实例:
代码如下 | 复制代码 |
<?php |
if语句可以选择是否执行语句体,而if…else语句则是二选一,必须在两个语句体中选择一个来执行。可以解释为“若发生了什么事则怎么处理,否则该如何解决”,所以if…else本质上是一种选择性语句。
如果值为非0(即真),则执行语句体1,值为0(即假),则执行语句体2.
if…else语句的基本结构为:
if(判断语句)
{
执行语句体1
}
else
{
执行语句体2
}
实例:
代码如下 | 复制代码 |
<?php |
if…else语句只能实现两路分支,要实现多路分支用多个if…else语句嵌套即可。其结构形式如下:
if(判断语句1){
执行语句体1
}
else if(判断语句2){
执行语句体2
}
else if…
else…
实例:
代码如下 | 复制代码 |
<?php |
在if语句中可以嵌套多个if()语句,以实现多多个参数的判断,一般称为if语句多种嵌套,其基本结构形式如下:
if(判断1)
if(判断2) 语句体1
else 语句体2
else
…
这里应当注意if和else的配对关系,从内层开始,else总是与它上面最近的if配对,在编程时要特别小心。
实例:
代码如下 | 复制代码 |
<?php |
前面介绍了if…else嵌套结构可以实现多分支选择的功能,不过这种方法代码比较冗长。实现多分支选择的功能,php还提供了switch语句。用switch语句事程序变得更加简明了。
基本结构:
switch(表达式){
case 1:
执行语句体1;
break;
case 2:
执行语句体2;
break;
...
default:
执行语句体n;
break;
}
表达式的值首先与case语句逐个匹配,如果匹配得上则执行该语句体,然后跳出循环。如果最终没有case语句匹配,则执行default后面的执行语句。
实例:
代码如下 | 复制代码 |
<?php |
foreach遍历数组
我们在运用数组时,常常要遍历数组并获得各个键或者元素值,php提供了一些专门遍历数组的函数。这里先介绍foreach遍历数组函数的用法。
结构形式:
foreach ( array_expression as $value ) statement
/* array_expression是要遍历的数组
as作用是将数组的值赋给$value
statement是后续语句
*/
实例1:
代码如下 | 复制代码 |
<?php |
通过foreach不仅可以获得元素的值也可以获得键名,结构形式:
foreach ( array_expression as $key => $value ) statement
将以上实例中第7行的代码:
代码如下 | 复制代码 |
改为: foreach( $color as $key => $c) echo $key.$c ."<br>"; |
each遍历数组
遍历数组是php数组操作一个重要的环节,除了前面提到的foreach函数,这里再介绍一个遍历数组的函数-each()。
用each()函数可以输出当前指针位置的键名和对应的元素值。可以使用”0″或”key”来访问键名(标识符),用”1″或”value”访问标识符对应的值。
实例:
代码如下 | 复制代码 |
<?php |
list遍历数组
函数list可以在遍历数组时一次赋给变量,通常和each()函数配合使用。用list()函数使访问each()返回的键和值变得更加简单了。
实例:
代码如下 | 复制代码 |
<?php $date=array(1=>"Monday", 2=>"Tuesday", 3=>"Wednesday"); list($key,$value)=each($date); /* 遍历函数 */ echo "$key $value" ."<br>"; /* 输出第一个数组 */ $next=next($date); /* 指针后移 */ echo "$next"; ?> |
ps:list()函数刚好与array()函数相反,array()将一系列数据构造成数组,而list()则将数组拆分成数据。
for遍历数组
除了php预定义的一些遍历数组函数,我们还可以利用for语句的循环特性将数组遍历输出。下面给出例子:
代码如下 | 复制代码 |
<?php |
用for语句可以控制多个变量,从而实现多重循环的高级应用。
下面看一个用for语句输出9*9乘法表的程序:
代码如下 | 复制代码 |
<?php |
除了前面提到的while循环语句,php还提供了for循环语句实现同样的功能。而且for语句可以实现更为复杂更多功能的循环,任何while循环都可以用for循环来代替。
基本结构形式:
for(表达式1;表达式2;表达式3){
执行语句体
}
其执行过程如下:
1、先执行表达式1;
2、接着判断表达式2的真假,若为假则跳出for循环执行下一个php语句,若为真则进入for循环执行语句体;
3、然后执行表达式3;
4、返回第2步循环运行;
5、直至循环结束跳出for语句。
流程图:
实例:
代码如下 | 复制代码 |
<?php |
do…while循环语句是while循环的变体,功能类似于while,只是在其执行循环后再检查表达式是否为真,基本结构为:
do{;
语句体
}while(表达式)
do…while循环语句先执行一次语句体,然后判断表达式的条件,如果值为真则返回再循环一次,为假则跳出循环。
实例:
代码如下 | 复制代码 |
<?php
|
while循环语句
while语句是php程序中用来实现循环的语句,其基本结构如下:
while(判断语句){
执行语句体;
}
判断语句一般用关系运算符或者逻辑运算符作为判断条件。
当判断语句为真实则执行语句体,然后再检查表达式的值,如果仍然为真,则执行语句再次被执行。直到判断语句为假时退出循环。
实例:
代码如下 | 复制代码 |
<?php |
while和do…while的区别:
两者的主要区别是do…while语句的第一次循环肯定要执行。
若两者循环体执行语句相同,它们的运行结果一般也相同,但在表达式一开始为假时,两种循环的运行结果就有所不同。
实例:
代码如下 | 复制代码 |
<?php |
php退出循环的方法有break和continu语句,它们的作用都是当判断条件满足时则跳出循环程序。
break语句用法:
当判断条件的值为真时提前结束整个循环,接着执行循环以外的语句。
实例:
代码如下 | 复制代码 |
<?php /* 输出面积在100以内的圆形面积 */ for($r=1;;$r++){ $A=3.14*$r*$r; if($A>50) break; /* 如果没有break则形成死循环 */ echo $A ."<br>"; } ?> |
continue语句用法:
continue语句的作用是结束本次循环而进入下一次循环,并不是退出整个循环程序。
实例:
代码如下 | 复制代码 |
<?php |
break和continue语句的区别:
从上面的例子我们可以看到,break和continue语句在退出循环的作用是有着本质区别的。
continue只是结束本次循环,接着再返回循环体继续执行下次循环;
break则是立即终止整个循环,不再重复执行。
小编今天来给php初学者介绍php文件操作的常用函数使用方法总结,包括:文件读写,创建,查看文件属性,文件删除等等关于文件的操作。在对一个文件进行访问之前,一般我们都需要判断文件是否存在,以免调用了不存在的文件导致错误。
php判断文件是否存在函数:file_exists(),结构形式如下:
file_exist($string);
参数$string为一个指向文件或目录的字符型变量,如果文件或目录存在,则返回true,否则返回false。
实例:
代码如下 | 复制代码 |
<?php |
php提供了一些访问文件属性的函数,可以获取文件的大小、类型、修改时间等
函数名 | 作用 | 参数及返回值 |
---|---|---|
filesize($string) | 获取文件大小 | 参数$string为一个指向文件或目录的字符型变量。函数的返回值为整型变量,返回文件的大小,返回结果会被缓存。如果出错,则返回false。函数参数不能为远程文件。 |
filetype($string) | 获取文件类型 | 参数$string为一个指向文件或目录的字符型变量。函数的返回值为字符型变量,返回结果会被缓存。 |
filemtime($string) | 获取文件修改时间 | 参数$string为一个指向文件或目录的字符型变量。函数的返回值为整型变量,返回文件的修改时间。 |
fileatime($string) | 获取文件访问时间 | 参数$string为一个指向文件或目录的字符型变量。函数的返回值为整型变量,返回文件的访问时间。 |
fileperms($string) | 获取文件权限 | 参数$string为一个指向文件或目录的字符型变量。函数的返回值为整型变量,返回文件的相应权限,返回结果会被缓存。函数参数不能为远程文件。 |
实例:
代码如下 | 复制代码 |
<?php |
在读取文件之前,必须先打开一个文件,php提供fopen()函数可以打开本地文件,也可以打开远程文件。其基本结构形式如下:
resource fopen (string $filename, string $mode)
参数filename是要打开的文件名。参数mode是要打开文件的方式,如下表所示:
mode | 说明 |
---|---|
r | 只读方式打开,将文件指针指向文件头。 |
r+ | 读写方式打开,将文件指针指向文件头。 |
w | 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
w+ | 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
a | 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
a+ | 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
x | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
x+ | 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
fopen()函数返回一个值,这个值包含一个文件句柄的整数,用来向执行文件操作的函数标识该文件。这个值通常被称为指针,指针就像内存地址中的一个个房间的门好。如果php打开文件失败,那么这个值就是flase。
实例:
代码如下 | 复制代码 |
|
首先建立一个”php.txt”的文件,内容如下:
hello
php
1、fgetc()函数读取文件中的某个字符,其结构形式如下:
string fgetc(resource $handle)
参数$handle是已经被打开的文件指针,函数返回当前文件指针所指向的字符。如果文件指针指向文件末尾,则返回false。
实例:
代码如下 | 复制代码 |
<?php
|
文件被打开后文件指针通常位于文件的开始位置。但是当对文件执行了一定操作后就很难判断此时php指针的位置了。
php文件指针位置查找函数ftell(),其结构形式如下:
int ftell(resource $handle)
参数$handle是要查找指针的文件,通过该函数能够判断文件指针的位置,函数返回整数值。
实例:
代码如下 | 复制代码 |
<?php |
php写文件函数fwrite()可以将所需的内容写入到目标文件中,结构形式如下:
int fwrite(resource $handle,string $string [,int $length])
参数$handle是要被写入的文件,采纳数$string是要写入的内容,参数$length可选,是要写入的长度。fwrite()函数返回写入的字符数,出现错误时返回false。
实例:
代码如下 | 复制代码 |
<?php |
php指针函数rewind()可以将文件位置指针设到文件的开头,其结构形式如下:
bool rewind (resource $handle );
函数返回一个布尔值,如果成功则返回true,失败则返回false。
实例:
代码如下 | 复制代码 |
<?php |
php创建目录文件夹函数mkdir(),其结构形式如下:
kdir(string $dirname,[int $mode])
参数$dirname为想要创建目录的名称,参数$mode可选,为整型变量,表示创建模式。
实例:
代码如下 | 复制代码 |
<?php |
php遍历目录的方法很多,这里通过实例详细介绍php遍历目录下文件的方法。
代码:
代码如下 | 复制代码 |
<?php function directory($dir){ /* 声明函数 */ $dp=opendir($dir); /* 打开目录 */ while($file=readdir($dp)){ /* 读取目录 */ if($file !="." && $file !=".."){ /* 判断是否有"."或者".."文件 */ $path=$dir. "/". $file; /* 取得目录路径 */ if(is_dir($path)){ /* 判断是否有子目录 */ directory($path); /* 函数递归调用 */ } else echo $path. "<br>"; /* 显示文件 */ } } closedir($dp); } directory("e:wp"); ?> |
php读取目录函数readdir()可以读取该目录下所有文件以及文件夹,其结构形式如下:
readdir($dp);
参数$dp为使用函数opendir()打开目录返回的资源对象,函数返回目录下的文件名。
实例:
代码如下 | 复制代码 |
<?php |
php关闭目录函数用closedir(),其结构形式如下:
closedir($dp)
参数$dp为使用函数opendir()打开目录返回的资源对象。
实例:
代码如下 | 复制代码 |
<?php $mulu="study"; $dir=opendir($mulu); closedir($dir); ?> |
用函数closedir()关闭目录成功并不返回值1,故不能通过if语句去判断是否关闭成功
前面介绍了php一系列的文件操作,接着笔者再介绍怎么对目录进行操作。php目录函数功能跟文件函数差不多,这里先介绍打开目录函数opendir(),其结构形式如下:
opendir(string $path)
参数$path为要打开目录的路径,函数将返回一个打开目录的句柄,用于存储当前的目录资源。打开目录之前首先要判断目录是否存在,用is_dir()函数。
实例:
代码如下 | 复制代码 |
<?php |
php指针函数rewind()可以将文件位置指针设到文件的开头,其结构形式如下:
bool rewind (resource $handle );
函数返回一个布尔值,如果成功则返回true,失败则返回false。
实例:
代码如下 | 复制代码 |
|
相关文章
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-31MyBatisPlus-QueryWrapper多条件查询及修改方式
这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27- 这篇文章主要介绍了C#条件语句、循环语句(if、while)的用法,学习c#的朋友可以参考下...2020-06-25
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- 1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31
- 这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
Mysql 原生语句中save or update 的写法汇总
背景  在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢?  ...2015-03-15- 当我们在星际中开地图和几家电脑作战的时候,电脑的几个玩家相当于结盟,一旦我们出兵进攻某一家电脑,其余的电脑会出兵救援。 那么如何让各家电脑知道自己的盟友被攻击了...2016-11-25
- 下面小编就为大家带来一篇jquery if条件语句的写法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
- 这篇文章主要给大家介绍了关于如何利用JavaScript编写更好的条件语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-10
- 举一个简单的date例子 我将使用echo命令把内容输出到我们的客户端(浏览器)。我将使用下面的代码做为基础代码。 代码如下 复制代码 <!DOCTY...2016-11-25
C#实现String字符串转化为SQL语句中的In后接的参数详解
在本篇文章中小编给大家分享的是一篇关于C#实现String字符串转化为SQL语句中的In后接的实例内容和代码,需要的朋友们参考下。...2020-06-25- 今天给大家带来的是关于Python基础的相关知识,文章围绕着Python循环语句展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...2021-06-15
- 复制代码 代码如下: select * from _test a left join _test b on a.id=b.id where a.level='20' and a.month='04' and b.level='20' and b.month='03';select a.*,b.* from (select * from _test where level='20'...2015-03-15
- 这篇文章主要介绍了关于Nginx中if语句的判断条件与多条件判断的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-07-06
- 一篇Android学习笔记之多界面切换实例,希望对各位朋友有所帮助。 用过VB 、 VC#的朋友都知道,在VB或VC#里要进行窗口(界面)切换很容易 例如在VB、C#里: 有 Fom1、...2016-09-20
- 这篇文章主要介绍了mybatis in查询条件过长的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-10
- 引用:意思是将原始对象在内存中的地址传递给目标对象,就相当于原始对象和目标对象指向的是同一个内存地址。此时,如果对目标对象或者原始对象进行修改,内存中的数据也会改...2016-11-25
- 可以采用exec方法 declare @tempStr varchar(350) select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' convert(varchar,@week) '] 1 where us...2016-11-25
- 这篇文章主要介绍了JavaScript的基本语句,包括注释和书写格式等基本知识,需要的朋友可以参考下,希望本篇文章能给您带来帮助...2021-08-15