本文介绍了找出函数是否与php有任何输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为您量身定制的一款.
说我有一个输出字符串的函数:
Say I have a function that outputs a string:
function myString()
{
echo 'Hello World';
}
我该如何测试该函数是否输出任何数据?
How would I go about testing to see if the function outputs any data?
if(myString() ==''){
echo ''Empty function;
}
推荐答案
使用输出缓冲区功能:
function testFunctionOutput($f, $p = array()){
ob_start();
call_user_func_array($f, $p);
$s = ob_get_contents();
ob_end_flush();
return (bool)($s !== '');
}
所以说...
function testa(){
echo 'test';
}
function testb($b){
$i = 20 * $b;
return $i;
}
var_dump(testFunctionOutput('testa'));
var_dump(testFunctionOutput('testb', array(10)));
Felix建议的替代版本:
Alternative version suggested by Felix:
function testFunctionOutput2($f, $p = array()){
ob_start();
call_user_func_array($f, $p);
$l = ob_get_length();
ob_end_clean();
return (bool)($l > 0);
}
这篇关于找出函数是否与php有任何输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!