在 PHP 中编写三元运算的正确方法

Correct way to write a ternary operation in PHP

据我所知,在PHP中有两种写三元运算的方法:

$var = ( isset( $i['var'] ) ? $i['var'] : "" );

$var = ( isset( $i['var'] ) ) ? $i['var'] : "";

是这些方法中的一种吗"correct",或者其中一种比另一种表现更好,还是两者可以互换?

两者都是正确的。事实上,在您的示例中,您甚至根本不需要括号。你可以这样做:

$var = isset( $i['var'] ) ? $i['var'] : "";

方括号不会对代码的性能产生任何影响。他们在那里有两个原因:

  1. 消除编译器歧义。
    这不适用于您给出的简单示例,因为操作员只检查一件事。不过,在一些更复杂的情况下,您可能需要括号。
  2. 使其更具可读性。
    同样,无论有没有括号,这个简单的例子都非常可读,所以它不会产生太大的可能性。但它们可能会帮助您了解当您拥有更复杂的代码时发生了什么,即使就编译器而言没有任何歧义。