0057 PHP编程语言的条件和循环语句以及函数
作者:学哥
发布时间:2018-10-3
上一节课讲的是PHP编程语言的基础语法和一些简单例子。
这节课来说明几种基本的程序逻辑以及函数的用法,包括常用的字符串函数和数组函数。
PHP条件语句 if...else...elseif
三种代码执行顺序逻辑语句:顺序执行/条件分支执行/循环执行。
条件分支语句可以根据不同的条件执行不同的代码。
if语句:如果指定条件为true,则执行代码。
if...else语句:如果条件为true,则执行代码;如果条件为false,则执行另一段代码。
if...elseif...else:根据条件选择某段代码执行。
if语句的语法:
if (条件) {
条件为true时执行的代码
}
例子:
$score=60;
if ($score>=60){
echo "及格了"."\r\n";
}
注意:PHP的语法主要靠括号以及花括号或者分号进行分隔,因此不需要像Python那样严格的格式要求。
例如上面的代码也可以放在一行中:if ($score>=60){echo "及格了"."\r\n";}
if...else语句的语法:
if (条件) {
条件为true时执行的代码
} else {
条件为false时执行的代码
}
例子:
$score=59;
if ($score>=60) {
echo "及格了"."\r\n";
} else {
echo "不及格"."\r\n";
}
if...elseif...else语句的语法:
if (条件1) {
条件1为true时执行的代码
} elseif (条件2) {
条件2为true时执行的代码
} elseif (条件3) {
条件3为true时执行的代码
} else {
条件全部为false时执行的代码
}
例子:
$score=88;
if ($score>=85) {
echo "优秀"."\r\n";
} else if ($score>=70) {
echo "一般"."\r\n";
} else if ($score>=60) {
echo "及格"."\r\n";
} else {
echo "不及格"."\r\n";
}
例子代码如下:
例子运行结果:
PHP循环while语句
常用的循环语句时while循环语句和for循环语句。
while循环语句有2种:
while语句:当条件为true时,循环执行语句。
do...while语句:先执行一次代码块,然后只要条件为true则循环执行。
这2种的区别在于一种是先判断再循环,一种是先执行一次再判断再循环。
do...while语句其实也可以使用while语句实现,所以不是必须的,但在某些情况下do...while语句可以精简代码。
while语句语法:
while (条件) {
当条件为true时,重复执行的代码
}
$c=0;
while ($c<10) {
$c++;
echo "while循环次数:".$c."\r\n";
}
do...while语句语法:
$c=0;
do {
$c++;
echo "dowhile循环次数:".$c."\r\n";
} while ($c<10)
这2种情况在初始值不同的情况下,可能结果不同。例如当初始值$c=10;的情况下就会不一样。
例子代码如下:
例子运行结果:
PHP循环for语句
for循环语句有2种:
for语句:已知循环次数或情况下,循环执行。
foreach语句:适用于数组,遍历数组中的每个元素执行。
for语句语法:
for (条件初始化; 条件判断; 条件变量改变) {
满足条件时循环执行的代码
}
例子:
for ($c=0;$c<5;$c++) {
echo "for循环次数:".$c."\r\n";
}
for ($n=0;$n<20;$n=$n+2) {
echo "步进2for循环次数:".$n."\r\n";
}
foreach语句语法:
foreach (数组变量 as 元素变量) {
遍历每个元素,循环执行的代码,每次的元素变量的值会不一样
}
例子:
$colors=array("red","green","blue");
foreach ($colors as $onecolor) {
echo "foreach循环:".$onecolor."\r\n";
}
$ages=array("tom"=>36,"jack"=>48,"michael"=>19);
foreach ($ages as $name=>$age) {
echo "带键的foreach循环:name:".$name.":age:".$age."\r\n";
}
例子代码如下:
例子运行结果:
PHP循环的continue和break语句
如果需要中途忽略某种情况跳到下一个元素继续循环,可以使用continue语句。
例子:
for ($c=0;$c<10;$c++) {
if ($c % 2 ==1) {
//奇数的时候不做处理,跳到下一次循环
continue;
}
echo "偶数:".$c."\r\n";
}
如果需要中途退出循环语句,可以使用break语句。
例子:
$ages=array("tom"=>36,"jack"=>48,"michael"=>19,"alex"=>16);
foreach($ages as $name=>$age){
if ($age<20) {
echo "第一个年轻人:".$name."的年龄是".$age."岁。"."\r\n";
//退出循环
break;
}
echo "带键的foreach循环:name:".$name.":age:".$age."\r\n";
}
结果可以看到,break退出之后,最后一个alex没有处理了。
例子代码如下:
例子运行结果:
PHP函数
PHP有很多内置的函数,当然也可以自己创建函数。
函数就是一组代码组合起来,并可以在代码中重复使用。
函数有一个函数名,并可以设置传入的参数和返回值。
函数自己不会执行,只有被调用才会执行。
创建函数语法:
function 函数名(参数1,参数2...) {
函数执行代码块
}
函数名必须时字母或者下划线开头,不能以数字开头。
函数名对大小写不敏感,例如Echo 和 ECHO是一样的。
例如:
function writeInfo() {
echo "hello"."\r\n";
}
function writeMyName($name) {
echo "name is ".$name."\r\n";
}
调用函数:
writeInfo();
$myname="michael";
writeMyName($myname);
函数有返回值例子:
function add($a,$b) {
return $a+$b;
}
调用函数:
$x=3;
$y=6;
echo add($x,$y)."\r\n";
例子代码如下:
例子运行结果:
PHP常用字符串函数
字符串是常用的数据类型,系统内置了很多字符串函数,下面介绍一些常用的字符串函数。
trim:移除字符串两侧的空白字符。
strlen:返回字符串的长度。
explode:把字符串打散为数组。
implode:返回由数组元素组合成的字符串
substr:返回字符串的一部分。
其它函数,大家可以自行搜索PHP手册进行自学。
例子:
$str1=" hello world ";
echo "trim结果:".trim($str1)."\r\n";
$str2="this is a new world.";
echo "strlen结果:".strlen($str2)."\r\n";
$ret=explode(" ",$str2);
echo "explode结果:"."\r\n";
var_dump($ret);
$ret2=implode(",",$ret);
echo "impolde结果:".$ret2."\r\n";
echo "substr结果:".substr($str2,2,4)."\r\n";
例子代码如下:
例子运行结果:
PHP常用数组函数
数组是最常用的数据类型,系统内置了很多数组函数,下面介绍常用的及格函数,更多的函数情查看PHP手册。
array:新建一个数组。
count:返回数组的元素总个数。
array_keys:返回数组的所有键名。
array_key_exists:判断键名是否存在于数组中。
array_values:返回数组中所有的元素值。
sort:对数组进行排序。
例子:
$colors=array("red","green","blue");
echo "count结果:".count($colors)."\r\n";
echo "array_keys结果:"."\r\n";
var_dump(array_keys($colors));
$ages=array("tom"=>36,"jack"=>48,"michael"=>19);
echo "array_keys结果:"."\r\n";
var_dump(array_keys($ages));
echo "array_key_exists结果:"."\r\n";
var_dump(array_key_exists("jack",$ages));
echo "array_key_exists结果:"."\r\n";
var_dump(array_key_exists(5,$colors));
echo "array_values结果:"."\r\n";
var_dump(array_values($colors));
echo "array_values结果:"."\r\n";
var_dump(array_values($ages));
sort($colors);
echo "sort结果:"."\r\n";
var_dump($colors);
sort($ages);
echo "sort结果:"."\r\n";
var_dump($ages);
例子代码如下:
例子运行结果: