【问题标题】:Combine if-query with allocation将 if-query 与分配相结合
【发布时间】:2016-10-27 21:35:42
【问题描述】:

是否可以将分配合并到 if-query 中,是否应该这样做?

$textxPos = $xPos + $fieldData["coordinates"]["x"] / $divisor;
if ($textxPos < 0) {
  ..
}

像这样:

if ($link['value'] = trim($link['value'])) {
  ..
}

【问题讨论】:

  • 有可能吗?是的。应该做吗?主观性很强。但是,在大多数情况下,答案是否定的,因为它使代码更难理解且不直观。很少有例子表明它是司空见惯的(while($row = fetch_something())),但大多数情况下,恕我直言,您应该避免这样做。
  • “应该这样做吗?”不。@FranzGleichmann 很好的例子.. 但那是在一个 while 循环中。我不知道是否有可能在 if 条件下做类似的事情..?
  • @RamaLingam 对于您和 WEBiuiu 一样...只需再次阅读他的问题。您的回答对他没有帮助,这是故意的,只有一个相等。
  • @Twinfriends 是的,但在内部,一段时间不过是带有 goto 的 if。并且问题的基本原则保持不变:控制结构内的变量分配,是还是不是?我个人倾向于反对,并以主要基于意见的方式结束这个问题
  • @FranzGleichmann 好的,你是对的。那么如果有数据要获取,意味着 if($row = fetch*()) 会是真的吗?

标签: php optimization web


【解决方案1】:

试试这个:

if(($textxPos = $xPos + $fieldData["coordinates"]["x"] / $divisor) && $textxPos<0 )
{
    echo "true";
}
else
{   
    echo "false";
}

示例:

<?php
$var1 = "112";
$var2 = "112";
$divisor = "10";

if(($textxPos = $var1 + $var2 / $divisor) && $textxPos<0 )
{
    echo "true";
}
else
{   
    echo "false"; //$textxPos=123.2
}
?>

首先将值分配给$textxPos,然后使用&amp;&amp; 运算符检查条件。

【讨论】:

  • @Julli Schaf:在if 条件下,我们可以分配或执行任何操作。
猜你喜欢
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多