【问题标题】:What does this syntax ( page = $page ? $page : 'default' ) in PHP mean?PHP 中的这种语法( page = $page ? $page : 'default' )是什么意思?
【发布时间】:2011-01-07 04:12:41
【问题描述】:

我是 PHP 新手。我在WordPress 中遇到了这种语法。该代码的最后一行是做什么的?

$page = $_SERVER['REQUEST_URI'];
$page = str_replace("/","",$page);
$page = str_replace(".php","",$page);
$page = $page ? $page : 'default'

【问题讨论】:

标签: php wordpress ternary-operator conditional-operator language-construct


【解决方案1】:

那是the ternary operator:

那行翻译成

if ($page)
    $page = $page;
else
    $page = 'default';

【讨论】:

  • “条件运算符”是什么意思。您不是说“三元运算符”(条件运算符之一s)吗?
  • 我最初写的是“三元运算符”。 @Ether 对其进行了编辑并将其更改为“有条件的”。好奇。
  • “三元运算符”是模棱两可的,因为可以有多个。
  • 文档似乎不同意:“另一个条件运算符是“?:”(或三元)运算符。”
【解决方案2】:

ternary operation 不是 PHP 或 WordPress 特定的,它存在于大多数语言中。

(condition) ? true_case : false_case 

所以在这种情况下,$page 的值将是“默认”,当 $page 类似于 false 时——否则它将保持不变。

【讨论】:

    【解决方案3】:

    最后一行更详细的语法是:

    if ($page)
    {
        $page = $page;
    }
    else
    {
        $page = 'default';
    }
    

    【讨论】:

      【解决方案4】:

      表示如果$page没有值(或者为零),则设置为'default'。

      【讨论】:

        【解决方案5】:

        这是 PHP 中条件运算符的一个例子。

        这是以下的简写版本:

        if (something is true ) {
            Do this
        }
        else {
            Do that
        }
        

        Using If/Else Ternary Operators http://php.net/manual/en/language.operators.comparison.php.

        【讨论】:

          【解决方案6】:

          这就是所谓的conditional operator。它的功能类似于 if-else 语句, 所以

          $page = $page ? $page : 'default';
          

          做同样的事情

          if($page)
          {
              $page = $page;
          }
          else
          {
              $page = 'default';
          }
          

          【讨论】:

          • 参考文献说它是三元运算符(或三元运算符?),条件运算符之一。你能详细说明一下吗?
          【解决方案7】:

          这意味着如果 $page 变量不为空,则在该变量的最后一行分配 $page 变量或将其设置为“默认”页面名称。

          It is called conditional operator

          【讨论】:

          • 它被误称为 the 三元运算符,实际上它只是 a 三元运算符。当然,在大多数语言中,它是唯一实现的三元运算符,但这并不排除创建其他需要 3 个参数的运算符。例如,一种语言可以有一个用于声明函数的运算符,很像 Forth 的 : 运算符,它对函数名、参数列表和代码块进行操作。那也是一个三元运算符。
          • “条件运算符”?你不是说“三元运算符”吗?
          猜你喜欢
          • 1970-01-01
          • 2011-12-17
          • 1970-01-01
          • 2019-07-29
          • 1970-01-01
          • 2018-04-01
          • 2019-04-10
          • 1970-01-01
          • 2010-10-03
          相关资源
          最近更新 更多