使用不同类型的变量简化empty()+ echo

时间:2013-01-20 20:26:15

标签: php echo string

我正在尝试获取代码错误并免费注意。因此,我应该检查我想要回应的每个变量。我感兴趣的具体案例是一个“新”页面,也可以作为“编辑”。如果选择了某些内容,则会显示编辑页面,其中的字段将填入要编辑的内容。如果没有选择它,它是相同的页面,但是有空字段。这让我知道我的意思:

  <li class="bordertop">
    <label>Recommended knowledge</label>
    <input class="first_input" name="recommended[]" value="<?php if (count ($Subject->retrieveLink('recommended')) > 0) echo current($Subject->retrieveLink('recommended')); ?>" placeholder="Title"/>
    <input class="second_input" name="recommended_url[]" value="<?php if (key ($Subject->retrieveLink('recommended')) != null) echo key($Subject->retrieveLink('recommended')); ?>" placeholder="http://www.example.com"/>
  </li>

我真的不喜欢我页面中的那么多代码。我试图尽可能多地将逻辑从表示中分离出来并保持OOP方法。我正在考虑做类似的事情:

// Check + echo
function checko($arg = null)
  {
  if (!is_array($arg))
    if (!empty($arg))
      echo $arg;
  }

但是这也似乎在将来要求麻烦(从内部回应不会让我进一步修改字符串,它根本不像'正确'的解决方案。我想检查和回声有很多变量,有时会被填充,有些时候是空的。对此最好的方法是什么?我知道我可以通过执行if (empty($variable)) echo $variable来重复我的代码,但是:

  1. 这不起作用(从PHP 5.4开始,我相信它将在5.5中工作)并返回来自对象的值。这是我的主要关注点,因为我经常使用它。

  2. 我有太多的重复代码。否

2 个答案:

答案 0 :(得分:1)

  

我试图解决我的代码错误并免费注意。因此,我应该检查我想要回应的每个变量。

不,你不应该 看,这些通知并不仅仅是为了让你忙着打架。他们是为了帮助,而不是让你的代码变得复杂 您只需要确定您操作的变量。添加批量if(empty())不会有任何好处。

  

我真的不喜欢我页面中的那么多代码。

这确实是模板的代码太多了。其中一些应该转移到控制器中 在调用模板之前准备好数据,然后将其设为明文

<input class="first_input" name="recommended[]" value="<?=$recommended?>" placeholder="Title"/>
<input class="second_input" name="recommended_url[]" value="<?=$recommended_url?>" placeholder="http://www.example.com"/>

答案 1 :(得分:0)

不要在函数内部回显,只返回值

// Check + echo
function checko($arg = null) {
  if (!is_array($arg))
    if (!empty($arg))
      return $arg;
}

另外,如果要缩短代码,可以使用三元运算符: http://phpmaster.com/using-the-ternary-operator/