-1

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

  <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. 我会有太多重复的代码。不

4

2 回答 2

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"/>
于 2013-01-20T20:39:05.470 回答
0

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

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

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

于 2013-01-20T20:31:38.633 回答