2010-08-30 66 views
8

通常情况下,我会写像这样一个功能:PHP的echo函数的返回值VS回声内功能

function alertClass($field,$full=false){ 
global $formErrors; 
$html = $full ? ' class="alert"' : ' alert'; 
if (!empty($formErrors[$field])) return $html; 
} 

,然后我想要的HTML显示,我会像呼应的函数的返回值所以:

echo alertClass('somefield') 

但今天我在想为什么不只是把回声放在函数中而不是使用它的返回值? 因此,而不是“返回$ html”它将是“echo $ html”... 是否有一种优势,或其他方式?

回答

0

如果你没有使用任何地方的返回值,那么直接echo ing是比较好的。

6

使用echo预存使用该函数以编程方式构建一些HTML以便稍后输出或进一步处理。

如果你的情况没有任何缺点返回HTML,我会继续这样做。它增加了灵活性。

2

这取决于功能的目的。

一般来说,你会希望尽可能地让你的功能免于副作用。如果你在几处地方回显输出,你的代码会变得非常混乱。返回值的函数也更加通用,因为调用者可以决定是进一步处理该值还是立即回显该值。然而,如果函数的目的是专门输出文本(例如,根据模板负责构建和输出页面的类的方法),那么它将很好。

例如,当您回应文本你的功能就这样的
7

...

function yourStatus(){ 
    echo ' Done'; 
} 

echo 'Status ='. yourStatus(); 

你的输出看起来就像这样

"DoneStatus =" 

代替

"Status = Done" 

欢呼声

1

最近我看到这样的代码:

function check_something($var) { 
    if($var) { 
     echo "true"; 
     return true; 
    } else { 
     echo "false"; 
     return false; 
    } 
} 

他们为什么这样做?回应一些东西并在此之后返回真/假?这不是不好的做法/糟糕的编码风格吗?