【问题标题】:What is this PHP technique called?这种 PHP 技术叫什么?
【发布时间】:2011-12-05 02:37:49
【问题描述】:

我在 WordPress 中看到过类似的东西:

if($aVariable=aFunction()){
  // If aFunction() returned true
}

这叫什么,我在哪里可以找到有关它的更多信息?

【问题讨论】:

  • 首先执行aFunction(),然后将其返回值赋给名为$aVariable的变量,然后将返回值用作if语句的布尔值。就这些了。
  • 为什么这个问题被否决了?如果您对该问题有疑问,您至少应该有礼貌地告诉@Linksku 为什么!

标签: php


【解决方案1】:

“内联赋值”就是我所说的。

相当于:

$aVariable=aFunction();
if($aVariable){ 
  // If aFunction() returned true 
} 

如果 $aVariable 没有在其他地方使用,那么这样做是没有意义的。 所以在其他地方需要对 $aVariable 进行有用的阅读。

对此没什么好说的,除了当您需要多次检查 aFunction 的结果时,它节省了几次击键。

【讨论】:

  • 很多时候,它也只是一个错字,不小心分配给 $aVariable 而不是比较(虽然在这种情况下,评论似乎表明他们是那样的意思)。
  • 如果错字是“==”与“=”,是的,那可能是真的。我怀疑 WordPress 可能已经过很好的测试,所以它不太可能是 OP 发现的错字。
【解决方案2】:

这是可行的,因为赋值表达式的值就是被赋值的值。

$foo = 'bar' 是一个赋值表达式。此表达式将值 'bar' 分配给变量 $foo,并且整个表达式也会产生值 'bar'

if () 期望括号内有一个 表达式,它将计算为 truefalse

所以归结起来是这样的:

if ($aVariable = aFunction())
if (value of expression, which is whatever aFunction() returned)
if (true/false evaluation of value of expression)

我不知道有没有具体的名字。

【讨论】:

    【解决方案3】:

    它被称为“条件”。 documentation 有详细信息。

    【讨论】:

    • 很确定 OP 指的是在 if 表达式内调用的内联函数,而不是在谈论 只是 if 语句。
    • @nickb:欢迎 OP 澄清她的问题,以解释她实际上在问什么......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多