PHP 日本大会 2024

if

(PHP 4, PHP 5, PHP 7, PHP 8)

if 结构是许多语言(包括 PHP)中最重要特性之一。它允许代码片段的条件执行。PHP 的 if 结构类似于 C 语言。

if (expr)
  statement

表达式部分所述,表达式会被计算为其布尔值。如果表达式计算结果为true,PHP 将执行语句;如果计算结果为false,则忽略它。'转换为布尔值' 部分提供了更多关于哪些值计算结果为false的信息。

以下示例如果$a大于$b,将显示a 大于 b

<?php
if ($a > $b)
echo
"a 大于 b";
?>

通常,您可能希望执行多个语句进行条件判断。当然,无需用if子句包装每个语句。相反,您可以将多个语句组合成一个语句组。例如,这段代码如果$a大于$b,将显示a 大于 b,然后将$a的值赋给$b

<?php
if ($a > $b) {
echo
"a 大于 b";
$b = $a;
}
?>

if语句可以无限嵌套在其他if语句中,这为您提供了程序各个部分条件执行的完全灵活性。

添加注释

用户贡献的注释 5 条注释

robk
11 年前
使用 php if else 执行条件 html / javascript / css / 其他语言代码的简便方法

<?php if (condition): ?>

如果条件为真,则运行的 html 代码

<?php else: ?>

如果条件为假,则运行的 html 代码

<?php endif ?>
georgy dot moshkin at techsponsor dot io
4 个月前
&& 运算符的从左到右求值有一个有用的特性:在遇到第一个“false”操作数后求值停止。

此特性可用于创建以下结构

不会评估 $someVar==123,因此不会出现诸如“未定义变量 $someVar”之类的警告
<?php
// $someVar=123; - 已注释的行
if ((!empty($someVar))&&($someVar==123))
{
echo
$someVar;
}
?>

不会调用函数 someFunc($someVar)
<?php
// $someVar=123; - 已注释的行
if ((!empty($someVar))&&(someFunc($someVar)))
{
echo
$someVar;
}
?>

这将给出“警告:未定义变量 $someVar”错误。顺序很重要
<?php
// $someVar=123;
if ((someFunc($someVar))&&(!empty($someVar)))
{
echo
$someVar;
}
?>
techguy14 at gmail dot com
13 年前
您可以在单个 if 语句中使用附加括号来嵌套 if 语句。
例如,与其使用

<?php
if( $a == 1 || $a == 2 ) {
if(
$b == 3 || $b == 4 ) {
if(
$c == 5 || $ d == 6 ) {
//在此处执行某些操作。
}
}
}
?>

您可以简单地执行此操作

<?php
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) {
//在此处执行某些操作。
}
?>

希望这有帮助!
grawity at gmail dot com
16 年前
关于:#80305

对于新手来说再次有用

如果您需要将变量与值进行比较,请勿执行以下操作

<?php
if ($foo == 3) bar();
?>

请执行以下操作

<?php
if (3 == $foo) bar();
?>

这样,如果您忘记了 =,它将变成

<?php
if (3 = $foo) bar();
?>

PHP 将报告错误。
Christian L.
13 年前
另一种控制方法是三元运算符(参见比较运算符),其使用方法如下

<?php
$v
= 1;

$r = (1 == $v) ? 'Yes' : 'No'; // $r 的值为 'Yes'
$r = (3 == $v) ? 'Yes' : 'No'; // $r 的值为 'No'

echo (1 == $v) ? 'Yes' : 'No'; // 将输出 'Yes'

// PHP 5.3 及以后版本
$v = 'My Value';
$r = ($v) ?: 'No Value'; // $r 的值为 'My Value',因为 $v 被评估为 TRUE

$v = '';
echo (
$v) ?: 'No Value'; // 将输出 'No Value',因为 $v 被评估为 FALSE
?>

以上所有示例中的括号都可以省略。
To Top