我在我的页面中有这个代码,但我想要优化它,因为它太长了。你能告诉我一种不同的写作方式吗?
public function __construct($css, $info, $other){
if ($info != FALSE) {
echo "Info is True";
}
if ($css != FALSE) {
echo "Css is true";
}
if ($other != FALSE) {
echo "other is true";
}
}
这只是一个例子。代码有太多if
条件,因为我必须检查的字段不同。有没有不同的方法呢?
我尝试过其他方法,但没有成功。 编辑:有时变量是空的!
答案 0 :(得分:0)
您的代码足够清晰,但您可以尝试不同的表示形式,如:
public function __construct($css, $info, $other){
echo $info != FALSE ? 'Info is True' : 'Info is False';
echo $css != FALSE ? 'CSS is True' : 'CSS is False';
echo $other != FALSE ? 'Other is True' : 'Other is False';
}
答案 1 :(得分:0)
如前所述,您现有的代码足够清晰(也可能是您应该使用的代码)但是为了它的乐趣,您总是可以通过使用变量变量来实现它: - )
class Foo
{
public function __construct($css, $info, $other)
{
foreach (array('css', 'info', 'other') as $p)
if (!!$$p) echo "$p is true" . PHP_EOL;
}
}
$bar = new Foo(1, '', true);
输出:
css is true
other is true
答案 2 :(得分:-1)
为避免大量ifs
,您可以使用单独的函数echo
所需的文字,例如:
public function __construct($css = false, $info = false, $other = false) {
$this->echoIfTrue($css, "Css is true");
$this->echoIfTrue($info, "Info is true");
$this->echoIfTrue($other, "Other is true");
}
private function echoIfTrue($someVar, $textToEcho) {
if ($someVar) {
echo $textToEcho;
}
}