1、判断
判断用白话讲就是若是怎么样就怎么样要否则就怎么样。 php
用的是“if”这个前面咱们已经用过,这里咱们详细讲一下。完整的if是 html
3 |
}elseif(expr2){ //要否则若是怎样 |
上面的代码中有三个条件,expr1,expr2,以及这两种之外,若是只有两种条件,能够把中间elseif去掉便可,若是有4种5种。。。只要继续写elseif便可,程序将从上到下去匹配expr直到为true。其中elseif也能够写成,else if中间有个空格,当code们只有一句时能够去掉大括号,可是,为了代码清晰,咱们仍是加上比较好,以避免出错。还有一点,当只有一个条件时,甚至能够不要else。下面例子将展现全部类型 express
07 |
echo "$a<1";//我没有使用大括号 |
08 |
elseif($a<2){//我和上面的else if不一样 |
17 |
//尽可能使用括号的忠告看看下面的代码 想一想结果是否和你想的同样 |
2、循环
循环比较多,分别介绍下。 数组
for:能够理解为,从一个值到另外一个值,一直作某件事。for的写法是 app
for (expr1; expr2; expr3)
code
第一个表达式(expr1)在循环开始前无条件求值一次。 函数
expr2 在每次循环开始前求值。若是值为 TRUE,则继续循环,执行嵌套的循环语句。若是值为 FALSE,则终止循环。 ui
expr3 在每次循环以后被求值(执行)。 expr3不必定出如今小括号里面,也能够写在code里面,总之就是要让expr2有能变成false不然将陷入死循环简单例子 spa
1 |
for ($i = 1; $i <= 10; $i++) { |
while:能够理解为,当怎么样那么就一直怎么样。while的写法是 .net
while (expr)
code
它告诉 PHP 只要 while 表达式的值为 TRUE 就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,因此即便这个值在循环语句中改变了,语句也不会中止执行,直到本次循环结束。有时候若是 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行。这里要注意要给expr有false的机会,不然将陷入死循环。
do-while:这个基本上和while是同样的惟一的区别在,不管while判断是否为true,都会执行一次,循环体。do-while的写法 code
foreach:这个在前面有介绍过,就是遍历数组而且只能用于遍历数组。若是提供给foreach的不是数组,将会出现致命错误。Invalid argument supplied for foreach();foreach的写法有两种
foreach (array_expression as $value)
code
foreach (array_expression as $key => $value)
code
第一种方法遍历数组的值将值赋值给value,而第二种方法把值赋值给value把key赋值给key
注意:除非数组是被引用,foreach 所操做的是指定数组的一个拷贝,而不是该数组自己。因此被foreach操做的数组自己不发生变化。
switch:switch能够理解为不少个if。
12 |
echo "i equals nothing"; |
为避免错误,理解 switch 是怎样执行的很是重要。switch 语句一行接一行地执行(其实是语句接语句)。开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句为止。若是不在 case 的语句段最后写上 break的话,PHP 将继续执行下一个 case 中的语句段。另外若是一个case也没匹配上,将会执行default:;试试下面的代码
这里若是 $i 等于 0,PHP 将执行全部的 print 语句!若是 $i 等于 1,PHP 将执行后面两条 print 语句。只有当 $i 等于 2 时,才会获得“预期”的结果——只显示“i equals 2”。因此,别忘了 break 语句就很重要(即便在某些状况下故意想避免提供它们时)。
在 switch 语句中条件只求值一次并用来和每一个 case 语句比较。在 elseif 语句中条件会再次求值。若是条件比一个简单的比较要复杂得多或者在一个不少次的循环中,那么用 switch 语句可能会快一些。
在一个 case 中的语句也能够为空,这样只不过将控制转移到了下一个 case 中的语句。
break:break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
break能够接受一个可选的数字参数来决定跳出几重循环。 试试下面的代码
1 |
for ($i = 1; $i <= 10; $i++) { |
continue:continue和break相似,只是他用来跳过本次循环。continue后面也能够接数字表示跳出几重循环。试试下面的代码,看看和你想的是否是同样吧
1 |
for ($i = 0; $i < 5; ++$i) { |
3、其余
declare:directive 部分容许设定 declare 代码段的行为。其实这个不经常使用。至少在我工做中没用到,他可使用其余方式替代。不去了解也罢。
return:即返回,用在函数中。
若是在一个函数中调用 return() 语句,将当即结束此函数的执行并将它的参数做为函数的值返回。return()也会终止 eval() 语句或者脚本文件的执行。
若是在全局范围中调用,则当前脚本文件停止运行。若是当前脚本文件是被 include() 的或者 require()的,则控制交回调用文件。此外,若是当前脚本是被 include() 的,则 return() 的值会被看成 include() 调用的返回值。若是在主脚本文件中调用 return(),则脚本停止运行。若是当前脚本文件是在 php.ini 中的配置选项 auto_prepend_file 或者 auto_append_file 所指定的,则此脚本文件停止运行。
注意: return() 是语言结构而不是函数,所以其参数没有必要用括号将其括起来。一般都不用括号,实际上也应该不用,这样能够下降 PHP 的负担。
试试下面的代码看看是否是和你想的同样
goto:顾名思义即跳到某处执行,可是由于使用goto会使代码流程不混乱,因此咱们不推荐你们使用。也就不具体讲了。
另外提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及endswitch;。 当看到别人写得代码出现这种形式的时候不要不认识便可,有时候html和php混合写得时候也能够用这种形式来使代码更加易读。
接下来是咱们从一开始到如今来第一次接触到两个或两个以上文件。
include和include_once二者都是包含并运行文件,惟一的区别是,include_once若是该文件中的代码已经被包含了,则不会再次包含。其实咱们能够这样想,包含了之后,两个php文件能够当作一个php文件,就这么简单。
require和require_once:和include实际上是同样的,惟一的区别是当包含失败时,include() 产生一个Warning而 require() 则致使一个致命错误,使脚本中止运行。其实也能够从字面上去理解,include仅仅是包含,require不只仅是包含仍是需求。
新建a.php,b.php两个文件分别写入以下代码而后运行b.php看看效果吧
2 |
include(dirname(__FILE__)."/a.php"); |
过会儿试试下面两个代码,和上面同样分别写在两个文件中
3 |
echo "include_once\n";include_once("b.php"); |
4 |
echo "include_once\n";include_once("b.php"); |
5 |
echo "include\n";include("b.php"); |
而后运行文件a看看效果吧
本文固定连接: http://www.qaforcode.net/archives/243 | 猪哥每日一贴