当前位置:网站首页>Control structure (I)
Control structure (I)
2022-04-23 15:34:00 【Jimeng network worry free】
if sentence
while sentence
for sentence
foreach sentence
break sentence
if sentence
if Structure is a lot of languages, including PHP It's one of the most important features , It allows code snippets to execute conditionally .PHP Of if The structure and C Language is similar :
<?php
if ($a > $b)
echo "a is bigger than b";
else sentence
It is often necessary to execute a statement when a condition is met , When this condition is not met, other statements are executed , That's exactly what it is. else The function of .else Extended if sentence , Can be in if The value of the expression in the statement is FALSE Execute statement . For example, the following code is in a Greater than a Greater than b Time display a is bigger than b, On the contrary, it shows a is NOT bigger than b:
<?php
if ($a > $b) {
echo "a is greater than b";
} else {
echo "a is NOT greater than b";
}
else if sentence
You can also write elseif, As the name implies , yes if and else The combination of . and else equally , It extends if sentence , Can be in the original if Expression value is FALSE Execute different statements when . But and else The difference is , It's only in elseif The conditional expression value of is TRUE Execute statement . For example, the following codes will be displayed separately according to the conditions a is bigger than b,a equal to b perhaps a is smaller than b:
<?php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
In the same if Statement can have more than one elseif part , The value of the first expression is TRUE( If any ) Of elseif Part will execute .
elseif The statement is only in the previous if And all the previous elseif The expression value of is FALSE, And the current elseif Expression value is TRUE When the .
Be careful : It must be noted that elseif And else if It is considered identical only if curly braces are used similar to the above example . If you use a colon to define if/elseif Conditions , Then you can't use two words else if, otherwise PHP There will be parsing errors .
<?php
/* Incorrect use : */
if($a > $b):
echo $a." is greater than ".$b;
else if($a == $b): // Will not compile
echo "The above line causes a parse error.";
endif;
/* Correct usage : */
if($a > $b):
echo $a." is greater than ".$b;
elseif($a == $b): // Pay attention to the use of a word elseif
echo $a." equals ".$b;
else:
echo $a." is neither greater than or equal to ".$b;
endif;
Alternative syntax for process control
PHP Provides some alternative syntax for process control , Include if,while,for,foreach and switch. The basic form of substitution grammar is to put the left curly bracket ({) Change it to a colon (:), Put the right curly bracket (}) Change to endif;,endwhile;,endfor;,endforeach; as well as endswitch;
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>
Alternative grammar can also be used in else and elseif in . Here's an example that includes elseif and else Of if Examples of structures written in alternative grammatical formats :
<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>
Don't mix two grammars in the same control block .
while sentence
while loop yes PHP The simplest type of loop in . It and C In language while Behave the same .while The basic format of a statement is ( The code is in the syntax format , Not a code case , There is no need to hit the code ):
while (expr)
{
statement}
while The meaning of the sentence is very simple , It tells PHP as long as while The value of the expression is TRUE Repeat the nested loop statement . The value of the expression is checked every time the loop starts , So even if this value changes in the loop statement , The statement will not stop executing , Until the end of this cycle . Sometimes if while The value of the expression starts with FALSE, Then the loop statement will not be executed once .
and if The sentence is the same , Can be in while Enclose a statement group with curly braces in the loop , Or use alternative grammar :
while (expr):
statement
...
endwhile;
The following two examples are exactly the same , All display numbers 1 To 10:
<?php
/* example 1 */
$i = 1;
while ($i <= 10) {
echo $i++; /* the printed value would be $i before the increment (post-increment) */
}
/* example 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>
do-while sentence
do-while Circulation and while The cycle is very similar , The difference is that the value of the expression is checked at the end of each loop, not at the beginning . And general while The main difference between loops is do-while The loop statement of is guaranteed to execute once ( The true value of the expression is checked at the end of each loop ), However, in general while Not necessarily in the cycle ( The expression truth value is checked at the beginning of the loop , If you start with FALSE Then the whole cycle is terminated immediately ).
do-while There is only one syntax for loops :
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
The above cycle will run exactly once , Because after the first cycle , When checking the true value of an expression , Its value is FALSE($i No more than 0) And cause the loop to terminate . Senior C Language users may be familiar with a different language do-while Use circularly , Put the sentence in do-while(0) In , Use... Inside the loop break
Statement to end the execution loop . The following code snippet demonstrates this approach :
<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while(0);
?>
If you can't understand it immediately, don't worry . Even without this “ characteristic ” You can also write powerful code to . since PHP 5.3.0 rise , You can also use goto
To jump out of the loop .
for sentence
for loop yes PHP The most complex loop structure in the world . Its behavior and C Language similarity . for The syntax of circulation is ( The code is in the syntax format , Not a code case , There is no need to hit the code ):
for (expr1; expr2; expr3)
{
statement}
The first expression (expr1) Evaluate unconditionally before the loop begins ( And implement ) once .
expr2 Evaluate before each cycle begins . If the value is TRUE, Then continue the cycle , Execute nested loop statements . If the value is FALSE, Then stop the cycle .
expr3 Evaluated after each loop ( And implement ).
Each expression can be empty or include multiple expressions separated by commas . expression expr2 in , All expressions separated by commas are evaluated , But only take the last result .expr2 Being empty means that it will loop indefinitely ( and C equally ,PHP Secretly think its value is TRUE). This may not be as useless as expected , Because I often want to use conditional break Statement to end the loop instead of for True value judgment of expression .
Consider the following example , They all display numbers 1 To 10:
<?php
/* example 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* example 2 */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* example 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* example 4 */
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>
Of course , The first example looks the most concise ( Or someone thinks it's the fourth ), But users may find that in for Using empty expressions in a loop is convenient in many cases . PHP Colons are also supported for Alternative syntax for loops ( The code is in the syntax format , Not a code case , There is no need to hit the code ).
for (expr1; expr2; expr3):
statement;
...
endfor;
Sometimes it is often necessary to traverse the array like the following example :
<?php
/* * This array will change the values of some of its cells during traversal */
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);
for($i = 0; $i < sizeof($people); ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>
The above code may be slow to execute , Because we have to calculate the length of the array every time we loop . Because the length of the array is always the same , You can use an intermediate variable to store the array length to optimize instead of calling count():
<?php
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);
for($i = 0, $size = sizeof($people); $i < $size; ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>
foreach sentence
foreach Syntax structure provides a simple way to traverse an array .foreach Can only be applied to arrays and objects , If you try to apply variables of other data types , Or uninitialized variables will send an error message . There are two kinds of grammar
foreach (array as $value)
statement
foreach (array as $key => $value)
statement
The first format traverses a given array Array . In each cycle , The value of the current cell is assigned to $value And the pointer inside the array moves one step forward .
The second format does the same thing , Only the key name of the current cell is assigned to the variable in each loop $key.
Change the value of an element
stay foreach There are two ways to change the value of an element
stay $value And before & To modify the elements of an array .
adopt $key Reassign .
edit /home/project/foreach.php
<?php
$arr1 = $arr2 = [1, 2, 3, 4];
foreach ($arr1 as &$value) {
$value = $value * 2;
}
var_dump($arr1, $value);
foreach ($arr2 as $key => $value) {
$arr2[$key] = $value * 2;
}
var_dump($arr2, $value);
perform
php foreach.php
It can be seen from the results , Of the last element of the array $value Reference in foreach It will remain after the cycle . It is recommended to use unset() To destroy it .
break sentence
break End the present for,foreach,while,do-while perhaps switch The execution of the structure . break You can accept an optional numeric parameter to decide how many cycles to jump out of .
edit /home/project/break.php
<?php
$i = 0;
while (++$i) {
for ($j = 0;$j < 10;$j++) {
switch ($i) {
case 1:
echo "At 1".PHP_EOL;
break 2;
case 5:
echo "At 5".PHP_EOL;
break 2;
case 10:
echo "At 10; quitting".PHP_EOL;
break 3;
default:
break;
}
}
}
perform
php break.php
As you can see from the results ,break With parameters, you can specify how many cycles to jump out .
版权声明
本文为[Jimeng network worry free]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231526352579.html
边栏推荐
- adobe illustrator 菜单中英文对照
- 【递归之数的拆分】n分k,限定范围的拆分
- Nacos program connects to mysql8 0+ NullPointerException
- Advantages, disadvantages and selection of activation function
- Squid agent
- Baidu written test 2022.4.12 + programming topic: simple integer problem
- 通过 PDO ODBC 将 PHP 连接到 MySQL
- What exactly does the distributed core principle analysis that fascinates Alibaba P8? I was surprised after reading it
- 推荐搜索 常用评价指标
- Detailed explanation of kubernetes (XI) -- label and label selector
猜你喜欢
随机推荐
What role does the software performance test report play? How much is the third-party test report charged?
携号转网最大赢家是中国电信,为何人们嫌弃中国移动和中国联通?
网站某个按钮样式爬取片段
Kubernetes详解(十一)——标签与标签选择器
How to test mobile app?
机器学习——逻辑回归
MySQL sync could not find first log file name in binary log index file error
2022年中国数字科技专题分析
How to design a good API interface?
深度学习——超参数设置
Krpano panorama vtour folder and tour
What is CNAs certification? What are the software evaluation centers recognized by CNAs?
Elk installation
移动app软件测试工具有哪些?第三方软件测评小编分享
基础贪心总结
Cookie&Session
How did the computer reinstall the system? The display has no signal
Openstack command operation
MySQL installation process (steps for successful installation)
Squid agent