Home >Backend Development >PHP Tutorial >PHP和MySQL入门(5)

PHP和MySQL入门(5)

WBOY
WBOYOriginal
2016-06-23 14:31:29976browse

控制语句

在我们之前看到的PHP的代码的例子中,要么是只有一个单独的向Web页面输出文本语句;要么是一系列的依次执行的语句。如果你用其他语言编写过程序,你应该知道,实际上很少有这么简单的程序。
和任何其他的编程语言一样,PHP也提供了很方便地处理脚本中的“控制流”的方法。就是说,PHP中包含了一些特殊的语句,通过这些语句你可是不受依次执行的顺序的束缚。这种语句被称之为“控制语句”。不理解?不要担心!有一些例子会很好地帮助你。

最基本最常用到的控制语句是if-else语句。它的结构是这样的:

 

if ( ) {
//如果是真,将执行的语句。
} else {
//(可选)如果是假,将执行的语句。
}

 

这个控制语可以让我们告诉PHP根据一些条件的真假来决定相应地执行哪一组语句。如果你不觉得我这么做有点空虚,我们可以将我们刚才建立的welcome.php文件修改为:

 

if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
} else {
echo( "Welcome, $name!" );
}

 

现在,如果传递给这个页面的name变量的值是Kevin,将显示一个特殊的信息。否则,将显示一个包含输入的name的普通的信息。

需要指出的是,在这个结构中,“else子句”(它指出了if-else结构中条件为假时执行的内容)是可选的。对于上面的例子,如果我们的目的是当适当的名字被输入时,显示特殊的信息,否则就什么也不显示。这段代码应该是这样的:

 

if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
}

 

在上面条件中所使用的==是用比较两个值是否相等的运算符。要特别记住的是在这儿你需要输入两 个等号。如果你输入的是一个等号,你实际上使用的是前面我们 讨论过的赋值运算符,你将不再是对两个变量的值进行比较,而是给变量赋了一个新值(这个操作会附带地返回一个true)。这样做的结果不仅仅是导致这个条 件永远是true,它还可能改变我们所要检查的变量的值,这可能会导致很多问题。

防止发生这种错误有一种安全的做法,那就是象下面这样颠倒用来比较的变量和常量的位置:

 

if ( "Kevin" == $name ) {

 

这样做的效果是完全相同的,但是当你忘了第二个等号时,我们来看看会发生什么情况。PHP会试图将变量($name)的值插入常量("Kevin")中。因为你不能改变常量的值,PHP会中断并提示一个错误信息,这将立即提示你忘了第二个等于号!

条件可以比单个的比较是否相等来得更复杂。回忆我们修改的welcome.php3,它是可以同时获取firstname和lastname的。如果我们想要为某个特定的人显示一个特殊的信息,我们可以同时比较这两个变量:

 

if ( "Kevin" == $firstname and "Yank" == $lastname ) {
echo( "Welcome, oh glorious leader!" );
}

 

只有$firstname的值是Kevin,而且$lastname的值是Yank时这个条件 才会返回真。and的意义就是只有两个比较都为真时,整个条 件才会返回真。还有一个符号是or,这使得两个比较中至少有一个为真时,整个条件就返回真。如果你对JavaScript和C中的运算符 (&&(and)和||(or))熟悉的话,你也可以在PHP中同样地使用它们。

在下面我们将看到一些更复杂的比较。现在,我们只需要对if-else语句有个基本的理解就可以了。

另一个常用的PHP控制语句是while循环。if-else语句使我们可以根据条件选择是否执行一组语句,while循环使我们可以根据条件来决定重复执行一组语句多少次。while循环的基本格式应该是这样的:

while ( ) {  //只要是真时反复执行的语句  }

这和一个没有else子句的if-else 语句非常相象。不同点在于当条件为真时语句执行完后,将不再是接着执行结束符(})后面的语句,而是再次检查条件。如果这个条件仍为真。将会重复执行语 句,直到条件不再为真时为止。当这个条件首次返回假时(不管是第几次检查它),将会跳转执行循环后面的语句(在结束符后面)。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:{php 编程技巧}Next article:[转]php伪静态