PHP学习笔记-流程控制语句

转载请标明出处:
http://blog.csdn.net/hai_qing_xu_kong/article/details/50976608
本文出自:【顾林海的博客】

前言

还有一个多月离开公司,在这段时间可以补充一下其它方面的知识,除本身android外,对服务器端也应该了解下。当然学一门语言应该把基础打牢,不要想着一口吃大饼。


条件控制语句

条件控制语句主要有if、if…else、elseif和switch4种。


if语句

几乎所有的程序设计语言都有if语句,它按照条件选择执行不同的代码片段。PHP的if语句格式为:

if(expr)
     statement;

如果表达式expr值为真,那么就顺序执行statement语句,否则就会跳过该条语句,再往下执行,如果需要执行的语句不止一条,那么可以使用“{}”,在“{}”中的语句被称为语句组,格式为:

if(expr){
     statement1;
     statement2;
     ...

}

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>


header("Content-Type:text/html;   charset=gb2312");
$num=rand(1,20);//使用rand()函数生成一个随机数
if($num%2==0){
     echo "\$num=$num";
     echo "
$num 是偶数"
; } ?>
body>
html>

运行结果:
$num=16
16 是偶数



if…else语句

大多数情况下,总是需要在满足某个条件时执行一条语句,而在不满足该条件时执行其他语句。这是可以使用if…else语句,语法格式为:

if(expr){
     statement1;
}else{
     statement2;
}

该语句的含义为:当表达式expr为真时,执行statement1;如果表达式expr为假,则执行statement2。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$num=rand(1,20);//使用rand()函数随机生成一个数
if($num%2==0){
     echo "变量$num 是偶数";
}else{
     echo "变量$num 是奇数";
}

?>

body>
html>

运行结果:
变量5 是奇数



elseif语句

if…else语句只能选择两种结果:要么执行真,要么执行假。但有时会出现两种以上的选择,这时可以使用elseif语句来执行,语法格式为:

if(expr1){
     statement1;
}else if(expr2){

}
...
else{
     statementn;
}
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/1999/xhtml">

"Content-Type" content="text/html; charset=gb2312"
/>
PHP语言基础





header("Content-Type:text/html;   charset=gb2312");
$month=date("n");
$today=date("j");
if($today >=1 and $today <= 10){
     echo "今天是".$month."月".$today."日上旬";
}elseif($today >10 and $today <= 20){
     echo "今天是".$month."月".$today."日中旬";
}else{
     echo "今天是".$month."月".$today."日下旬";
}

?>



运行结果:
今天是3月24日下旬

注意:运行以上时有可能会出现这种情况, Warning: date(): It is not safe to rely on the system’s timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.
可以通过以下方式修复:
方法1:
(最好的方法)在php.ini里加上找到date.timezone项,设置date.timezone = “Asia/Shanghai”,重启环境就ok了。
方法2:
在需要用到这些时间函数的时候,在页面添加date_default_timezone_set(“PRC”);
方法3:
在页头加上设置时区ini_set(‘date.timezone’,’Asia/Shanghai’);



switch…case多重判断语句

虽然elseif语句可以进行多重选择,但使用时十分繁琐。为了避免if语句过于冗长,提供程序的可读性,可以使用switch多重判断语句。语法格式如下:

switch(variable){
     case value1:
          statement1;
          break;
     case value2:
     ...
     default:
          default statement;
}

switch语句根据variable的值,依次与case中value值相比较,如果不相等,继续查找下一个case,如果相等,就执行对应的语句,直到switch语句结束或遇到break为止。一般来说,switch语句最终都有一个默认值default,如果在前面的case中没有找到相符的条件,则输出default后的语句,和else语句类似。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$num=rand(0,4);
switch($num){
case 0:
     echo "这是一个0";
     break;
case 1:
     echo "这是一个1";
     break;
default:
     echo "找不到了";
     break;
}

?>

body>
html>

运行结果:
这是一个1



循环控制语句

条件控制语句,可以根据条件选择执行不同的语句。但有时需要重复使用某段代码或函数。


while循环语句

while循环是PHP中最简单的循环语句,它的语法格式为:

while(expr){
     statement;
}

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


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$num=1;
$str="10以内的偶数为:";
while($num <= 10){
     if($num % 2 == 0){
          $str.=$num." ";
     }
     $num++;
}
echo $str;

?>

body>
html>

运行结果:
10以内的偶数为:2 4 6 8 10



do…while循环语句

while语句还有另一种形式的表示,即do…while。两者的区别在于,do…while要比while语句多循环一次。当while表达式的值为假时,while循环直接跳出当前循环;而do…while语句则是先执行一遍程序块,然后再对条件表达式进行判断。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$num=1;
while($num != 1){
     echo "不会看到";
}

do{
     echo "会看到";
}while($num != 1);

?>

body>
html>

运行结果:
会看到



for循环语句

for循环是PHP中最复杂的循环结构,它的语法格式为:

for(expr1;expr2;expr3){
   statement;
}

其中,expr1在第一次循环时无条件取一次值;expr2在每次循环开始前求值,如果值为真,这执行statement,否则跳出循环,继续往下执行;expr3在每次循环后被执行。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$num=1;
for($i=1;$i <= 100;$i++){
     $num*=$i;
}
echo "100!=".$num;
?>

body>
html>

运行结果:
100!=9.3326215443944E+157



foreach循环语句

foreach循环时PHP4引进来的,只能用于数组,在PHP5中,又增加了对对象的支持。语法格式:

foreach(array_expression as $value)
     statement;

foreach(array_expression as $key => $value)
     statenment;




<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础title>

head>
<body>

Content-Type:text/html;   charset=gb2312");
$name=array("1"=>"Jack","2"=>"Ben","3"=>"Bill");
foreach($name as $key => $value){
     echo " ".$name[$key];
}
?>

body>
html>

运行结果:
Jack Ben Bill



流程控制的另一种书写格式

在一个复杂的PHP页面中,可能包含多个条件控制语句、循环控制语句和函数,仅查找匹配的大括号“{}”就非常麻烦。为此,PHP提供了另一种书写格式,包括if、while、for、foreach和switch都可以使用。书写格式的基本形式是:使用冒号”:”来代替左边的大括号“{”;使用endif;、endwhile、endfor、endforeach;和endswitch;来的代替右边的大括号“}”。

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/1999/xhtml">

"Content-Type" content="text/html; charset=gb2312"
/>
PHP语言基础





header("Content-Type:text/html;   charset=gb2312");
$ss=2;
$max=1000;
$arr=array();
echo $max."以内的素数为:";
while($ss < $max):
     $boo=false;
     foreach($arr as $value):
          if($ss % $value ==0):
               $boo=true;
               break;
          endif;
     endforeach;
     if(!$boo):
          echo $ss." ";
          $arr[count($arr)]=$ss;
     endif;
     $ss++;
endwhile;
?>



运行结果:
1000以内的素数为:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997



使用break/continue语句跳出循环

在使用循环语句时,有时不确定循环的次数,遇到这种情况可以使用无限循环,如:

while(true){
     ...
}

for(;;){
     ...
}

只有当程序块满足一定条件后才跳出循环,跳出循环使用的关键字是break和continue。

break关键字可以终止当前的循环,包括while、do…while、for、foreach和switch 在内的所有控制语句。
break语句不仅可以跳出当前的循环,还可以指定跳出几层循环,格式为:

break $num;

参数$num 指定要跳出几层循环。

continue关键字的作用没有break强大,continue只能终止本次循环而进入到下一次循环中,continue也可以指定跳出几重循环。

你可能感兴趣的:(PHP,PHP学习笔记)