今天,我们将讨论PHP中的控件结构和循环。 我将向您展示如何使用PHP支持的所有主要控制结构,例如if,else,for,foreach,while等。
什么是控制结构?
简而言之,控制结构使您可以控制应用程序中代码的执行流程。 通常,程序是逐行顺序执行的,并且控制结构通常允许您根据特定条件来更改该流程。
控件结构是PHP语言的核心功能,可让您的脚本对不同的输入或情况做出不同的响应。 这可以使您的脚本根据用户输入,文件内容或其他一些数据给出不同的响应。
以下流程图说明了控件结构在PHP中的工作方式。
如上图所示,首先检查条件。 如果条件为真,则将执行条件代码。 这里要注意的重要一点是,在有条件代码执行之后,代码执行将正常继续。
让我们考虑以下示例。
在上面的示例中,程序将检查用户是否已登录。根据用户的登录状态,他们将被重定向到“ 登录”页面或“ 我的帐户”页面。 在这种情况下,控制结构通过将用户重定向到其他页面来结束代码执行。 这是PHP语言的一项关键功能。
PHP支持许多不同的控制结构:
-
if
-
else
-
elseif
-
switch
-
while
-
do
-while
-
for
-
foreach
- 和更多
让我们通过示例来看看其中一些控制结构。
经历不同的控制结构
在上一节中,我们学习了PHP中的控制结构的基础及其在应用程序开发中的有用性。 在本节中,我们将介绍一些重要的控制结构,这些结构最终将在日常应用程序开发中频繁使用。
如果
if
附带的表达式的计算结果为true, if
构造允许您执行一段代码。
让我们看下面的示例,以了解其实际工作原理。
<?php
$age = 50;
if ($age > 30)
{
echo "Your age is greater than 30!";
}
?>
上面的示例应该输出Your age is greater than 30!
消息,因为表达式的计算结果为true。 实际上,如果只想执行一条语句,则可以将下面的代码片段重写为上面的示例,而无需括号。
<?php
$age = 50;
if ($age > 30)
echo "Your age is greater than 30!";
?>
另一方面,如果要执行的语句不止一个,则必须使用方括号,如以下代码片段所示。
<?php
if (is_array($user))
{
$user_id = isset($user['user_id']) ? $user['user_id'] : '';
$username = isset($user['username']) ? $user['username'] : '';
// and more statements...
}
?>
其他
在上一节中,我们讨论了if
构造,如果表达式的计算结果为true,则该构造使您可以执行一段代码。 另一方面,如果表达式的计算结果为false,则不会执行任何操作。 通常,如果表达式的计算结果为false,您还希望执行其他代码段。 这就是else
语句出现的else
。
您始终将else
语句与if
语句结合使用。 基本上,您可以如以下伪代码中所示定义它。
if (expression)
{
// code is executed if the expression evaluates to TRUE
}
else
{
// code is executed if the expression evaluates to FALSE
}
让我们修改前面的示例以了解其工作原理。
<?php
$age = 50;
if ($age < 30)
{
echo "Your age is less than 30!";
}
else
{
echo "Your age is greater than or equal 30!";
}
?>
因此,当您有两个选择并且必须执行其中一个选择时,可以使用if-else
构造。
否则
我们可以将elseif
语句视为if-else
构造的扩展。 如果您有两个以上的选择,则可以使用elseif
语句。
让我们研究elseif
语句的基本结构,如下面的伪代码所示。
if (expression1)
{
// code is executed if the expression1 evaluates to TRUE
}
elseif (expression2)
{
// code is executed if the expression2 evaluates to TRUE
}
elseif (expression3)
{
// code is executed if the expression3 evaluates to TRUE
}
else
{
// code is executed if the expression1, expression2 and expression3 evaluates to FALSE, a default choice
}
同样,让我们尝试使用一个真实的例子来理解它。
<?php
$age = 50;
if ($age < 30)
{
echo "Your age is less than 30!";
}
elseif ($age > 30 && $age < 40)
{
echo "Your age is between 30 and 40!";
}
elseif ($age > 40 && $age < 50)
{
echo "Your age is between 40 and 50!";
}
else
{
echo "Your age is greater than 50!";
}
?>
如上例所示,我们有多个条件,因此我们使用了一系列elseif
语句。 if
所有if
条件评估为false,它将执行最后else
语句中提供的代码。
开关
switch语句与上一节中刚刚讨论过的elseif
语句有些相似。 唯一的区别是正在检查的表达式。
对于elseif
语句,您有一组不同的条件,并且将根据条件执行适当的操作。 另一方面,如果要比较具有不同值的变量,则可以使用switch
语句。
与往常一样,示例是理解switch
语句的最佳方法。
<?php
$favourite_site = 'Code';
switch ($favourite_site) {
case 'Business':
echo "My favourite site is business.tutsplus.com!";
break;
case 'Code':
echo "My favourite site is code.tutsplus.com!";
break;
case 'Web Design':
echo "My favourite site is webdesign.tutsplus.com!";
break;
case 'Music':
echo "My favourite site is music.tutsplus.com!";
break;
case 'Photography':
echo "My favourite site is photography.tutsplus.com!";
break;
default:
echo "I like everything at tutsplus.com!";
}
?>
正如你可以在上面的例子中看到的,我们要检查的价值$favourite_site
变量,并基于价值$favourite_site
我们要打印一个信息变量。
对于要使用$favourite_site
变量检查的每个值,必须定义case
块。 如果该值与案例匹配,则将执行与该案例块关联的代码。 之后,您需要使用break
语句来结束代码执行。 如果不使用break
语句,脚本将一直执行到switch语句的最后一块。
最后,如果您想在变量的值不匹配任何情况下执行一段代码,则可以在default
块下定义它。 当然,这不是强制性的,它只是提供默认情况的一种方式。
这就是条件控制结构的故事。 下一节将讨论PHP中的循环。
循环
当您要重复执行一段代码直到条件评估为false时,PHP中的循环很有用。 因此,只要条件评估为true,便会重复执行代码,而条件评估为false时,脚本将在循环后继续执行代码。
以下流程图说明了循环在PHP中的工作方式。
如您在上面的屏幕截图中所见,一个循环包含一个条件。 如果条件评估为真,则执行条件代码。 执行条件代码后,控制权返回到循环条件,流程继续进行,直到条件评估为假。
在本节中,我们将介绍PHP支持的不同类型的循环。
While循环
当您要重复执行一段代码直到while
条件的计算结果为false时,将使用while
循环。
您可以如以下伪代码中所示定义它。
while (expression)
{
// code to execute as long as expression evaluates to TRUE
}
让我们看一个真实的示例,以了解while
循环在PHP中的工作方式。
<?php
$max = 0;
echo $i = 0;
echo ",";
echo $j = 1;
echo ",";
$result=0;
while ($max < 10 )
{
$result = $i + $j;
$i = $j;
$j = $result;
$max = $max + 1;
echo $result;
echo ",";
}
?>
如果您熟悉斐波那契数列,您可能会发现上述程序的作用-它输出前十个数字的斐波那契数列。 当您不知道循环中要进行的迭代次数时,通常使用while
循环。
做时循环
该do-while
循环是非常相似的while
循环,与正在该条件时在第一迭代结束时检查的唯一区别。 因此,我们可以确保循环代码至少执行一次,而不管while表达式的结果如何。
让我们看一下do-while
循环的语法。
do
{
// code to execute
} while (expression);
让我们通过一个真实世界来了解可以使用do-while
循环的可能用例。
<?php
$handle = fopen("file.txt", "r");
if ($handle)
{
do
{
$line = fgets($handle);
// process the line content
} while($line !== false);
}
fclose($handle);
?>
在上面的示例中,我们试图逐行读取文件。 首先,我们打开了一个文件进行读取。 在我们的情况下,我们不确定文件是否包含任何内容。 因此,我们需要至少执行一次fgets
函数,以检查文件是否包含任何内容。 因此,我们可以do-while
此处使用do-while
循环。 do-while
在循环的第一次迭代之后评估条件。
对于循环
通常, for
循环用于执行一段特定次数的代码。 换句话说,如果您已经知道要执行代码块的次数,那么for
循环是最好的选择。
让我们看一下for
循环的语法。
for (expr1; expr2; expr3)
{
// code to execute
}
expr1
表达式用于初始化变量,并且始终执行。 expr2
表达式也将在循环开始时执行,如果计算结果为true,则将执行循环代码。 执行循环代码后,将执行expr3
。 通常, expr3
用于更改expr2
表达式中使用的变量的值。
让我们看下面的示例,看看它是如何工作的。
<?php
for ($i=1; $i<=10; ++$i)
{
echo sprintf("The square of %d is %d.</br>", $i, $i*$i);
}
?>
上面的程序输出前十个数字的平方。 它将$i
初始化$i
1,只要$i
小于或等于10,便会重复,并在每次迭代时将$i
1。
对于每个
foreach
循环用于遍历数组变量。 如果您有一个数组变量,并且想要foreach
该数组的每个元素,那么foreach
循环是最佳选择。
让我们看几个例子。
<?php
$fruits = array('apple', 'banana', 'orange', 'grapes');
foreach ($fruits as $fruit)
{
echo $fruit;
echo "<br/>";
}
$employee = array('name' => 'John Smith', 'age' => 30, 'profession' => 'Software Engineer');
foreach ($employee as $key => $value)
{
echo sprintf("%s: %s</br>", $key, $value);
echo "<br/>";
}
?>
如果要访问数组值,可以使用上例所示的foreach
循环的第一个版本。 另一方面,如果要同时访问键和值,则可以按照上面的$employee
示例所示进行操作。
结论
在本文中,我们讨论了PHP中的不同控件结构和循环。 它们是PHP或任何与此相关的编程语言的基本组成部分。
希望您喜欢这篇文章,如果您有任何疑问,请随时使用下面的提要来问他们!
翻译自: https://code.tutsplus.com/tutorials/php-control-structures-and-loops--cms-31999