PHP 编程/if 语句
条件语句用于控制哪些语句被执行。它们由三个基本元素组成:
- if语句;
- elseif语句;以及
- if else语句。
PHP 中的条件语句结构类似于 C++ 和 Java 中的条件语句。结构以一个if子句开始,它由单词 “if” 后跟一个真/假语句括在圆括号内( )。后续代码将包含在一个代码块中,由花括号{ }表示。有时花括号会被省略,只有一行代码紧随if语句。elseif和else子句有时出现在if子句之后以测试不同的语句。
该if子句表示 “如果该语句为真,我希望程序执行以下语句。如果为假,则忽略这些语句。” 从技术角度来说,它的工作原理如下:当遇到一个if语句时,真/假语句括号内的语句会被评估。如果发现该语句为真,则执行包含在花括号内的后续代码块。但是,如果发现该语句为假,则程序会跳过这些行并执行下一行非空行。
在if子句之后是两个可选的子句else和elseif。该elseif(或else if) 子句表示 “如果上一个语句为假,那么让我们看看,如果该语句为真。如果是,则执行以下代码。如果不是,则跳过它。”elseif语句只有在前面的if语句为假时才会被评估。否则会被跳过。除此之外,elseif子句的工作方式与常规if子句一样。如果为真,则执行其代码块;如果为假,则跳过其代码块。
最后,该else子句用作if语句的 “万能兜底”。本质上,else语句表示 “如果所有前面的测试都失败,则执行此代码。”
<?php
$foo = 1;
$bar = 2;
if ($foo == $bar) {
echo "$foo is equal to $bar.";
} elseif ($foo > $bar) {
echo "$foo is greater than $bar.";
} else {
echo "$foo is less than $bar.";
}
?>
<?php
$lower = 10;
$upper = 100;
$needle = 25;
if (($needle >= $lower) && ($needle <= $upper)) {
echo "The needle is in the haystack.";
} elseif (($needle <= $lower) || ($needle >= $upper)) {
echo "The needle is outside of the haystack.";
}
?>
条件值通过基本的正式逻辑来实现。理解if子句(以及其他子句)如何评估这些条件值非常重要。
最容易理解的是使用boolean 值,这意味着条件值的結果要么是 TRUE 要么是 FALSE,而不是两者都是。例如,如果变量$x = 4,并且一个条件语句使用表达式if ($x == 4)被调用,那么表达式的结果将是 TRUE,并且if语句将被执行。但是,如果表达式是($x == 0),那么结果将是 FALSE,并且代码将不会被执行。这很简单。
当考虑复杂表达式时,情况会变得更加复杂。表达式可以与之连接的两个基本运算符是AND (&&) 和OR (||).
我们得到变量$x和$y.
$x = 4;
$y = 8;
给定复杂表达式
($x == 4 AND $y == 8)
我们得到的结果是 TRUE,因为两个单独表达式的结果都是真的。当表达式使用 AND 运算符连接时,两边都必须为真,整个表达式才能为真。
类似地
($x == 4 OR $y == 8)
我们得到的结果是TRUE,因为至少有一个表达式为真。当表达式使用 OR 运算符连接时,至少有一边必须为真,整个表达式才能为真。
相反地,
($x == 4 AND $y == 10)
此表达式将返回FALSE,因为整个表达式中至少有一个表达式为假。
但是,
($x == 4 OR $y == 10)
此表达式将返回TRUE,因为整个表达式中至少有一个表达式为真。
代码块是一条或多条包含在一对花括号{ }之间的语句或命令。代码块主要用于循环、条件语句和函数。代码块可以嵌套在彼此内部,例如if语句在循环内部,循环在函数内部。
如果在某个条件语句之后没有用花括号括起来的代码块,则只执行下一条语句。建议避免使用这种方法,以防止在代码块之后添加更多代码时发生意外情况。
if (FALSE)
echo 'FALSE evaluates to true.';
echo 'Who knew that FALSE was TRUE?';
的结果如何都会被评估。
if (FALSE) {
echo 'FALSE evaluates to true.';
echo 'Who knew that FALSE was TRUE?';
}
如果你正在写一个长句子,其中有些部分是非静态的,你可以使用 if 语句来创建字符串。PHP 语法允许你在同一行内完成此操作,使用以下简写语法。
$money = 535; # $
print 'I have' . ($money > 500 ? '' : 'n’t') . ' enough money.';