本文介绍了找出函数是否与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有任何输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 07:55