PHP - 检测一个功能用于将值分配给变量
问题描述:
所以我有2个功能是这样的:PHP - 检测一个功能用于将值分配给变量
function boo(){
return "boo";
}
和
function foo(){
echo "foo";
}
拳头一个将返回一个值,并第二个将直接输出一些东西到屏幕上。
$var = boo();
foo();
我怎么能合并这两个功能于一体,并以某种方式检测,如果它被称为将结果输出到屏幕上,或者如果它被称为用于获取返回值?然后选择使用回报或回声......
答
function boo_or_foo ($output = false) {
if ($output) {
echo "fbo";
} else {
return "foo";
}
}
但什么反对只用一个函数(boo()
)的利益和呼应函数返回true它自己?
echo $boo();
答
以及在打印然后哟只是做
function foo(){
echo "foo";
return true;
}
if(foo()){
echo "foo did print something";
}else{
echo "nope foo is broken";
}
答
那么,一个函数应该只做一件事,所以通常你会有两个函数。但是,如果您想合并它们,您可以检查是否已设置:
function boo($var=null){
if(isset($var)) echo $var
else return "boo";
}
答
我希望达到相同的效果。在我的情况下,我有函数生成HTML,我希望有时直接回显(当进行Ajax调用时)或返回(当调用另一个脚本时)。
例如,创建一个HTML <option>
元素列表的函数 - listOfOption($filter)
。在首次创建我的网页之一,该函数被调用,结果到位附和道:
<?= listOfOption($var) ?>
但有时需要同样的数据在Ajax调用来检索:
http://site.com/listOfOption.php?parameter=2
而是写两个不同的脚本或者在参数中指定的行为,我一直在listOfOption($filter)
它自己的文件是这样的:
if (__FILE__ == $_SERVER['SCRIPT_FILENAME'])
{
echo listOfOption($_REQUEST['parameter']);
}
function listOfOption($filter)
{
return '<option value="1">Foo</option>';
}
这种方式如果调用来自另一个脚本,它返回数据;否则它会打印数据。
请注意,如果一个参数没有传递给函数,我不需要这样做,我可以随时响应数据并用替换<?= listOfOption() ?>
调用以保持清楚。
谢谢,我希望有更好的办法:)比添加额外的变量更优雅的东西 – Alex 2010-12-03 10:37:58