建议简化PHP语句

时间:2015-06-22 16:54:19

标签: php joomla coding-style

我是PHP新手,正在为Joomla K2项目布局编写模板文件。

我有一个额外的字段' DOMDocument已配置为"是","否"或""。 $extrafields[15]是一个文本字符串。

我有这个代码,但它可以提供有关如何简化它的建议,因为我知道它可能有点粗糙!

$extrafields[16]

3 个答案:

答案 0 :(得分:0)

我倾向于做这样的事情:

if(!empty($extrafields[15]) && !empty($extrafields[16])){ 
    if($extrafields[15] == "Yes"){
        echo "<span class=sgl-bold>Sponsored by:&nbsp;</span>"; 
        echo $extrafields[16]; 
        echo "<br>";
    } //endif not empty
} //endif yes

答案 1 :(得分:0)

只需进行一些简单的调整,您就可以使代码更简洁:

  • 尽可能删除多余的if子句
  • 将if子句条件与有意义的条件结合起来,
  • 请勿使用alternative syntax作为控制结构来降低噪音。

以下代码段保留了与原始尝试相同的功能,但更容易理解。

if (!empty($extrafields[15]) && 'Yes' === $extrafields[15]) {
    echo '<span class=sgl-bold>Sponsored by:&nbsp;</span>';
    if (!empty($extrafields[16])) {
        echo $extrafields[16];
    }
    echo '<br>';
}

也就是说,从上下文来看,您可能想要使用此处发布的solution BigScar。

为了使这个代码段更容易理解,你应该考虑使用数据结构(尽管我认为这是Joomla强加给你的东西):

  • 而不是像$extrafields[16]这样的数字数组中的值使用$showSponsor之类的说话变量名称,而
  • 而不是'Yes'的字符串值,&#39;否&#39;和''使用布尔值truefalsenull

记住:

  

There are only two hard things in Computer Science: cache invalidation and naming things.

答案 2 :(得分:-1)

if (@$extrafields[15] == "Yes") { 
    echo "<span class=sgl-bold>Sponsored by:&nbsp;</span>"; 
    echo @$extrafields[16]; 
    echo "<br>";
}