确定函数是否有输出的最佳方法?

Fea*_*ode 7 php wordpress wordpress-theming output

我有一个函数列表,它们运行一个相当深的例程来确定从哪个post_id获取其内容并将其输出到站点的前端.

当这个函数返回它的内容时,我希望它包装在一个html包装器中.我希望这个html包装器只在函数有返回的输出时才加载.

在示例中,我有以下...

public static function output_*() {
  //  my routines that check for content to output precede here
  //  if there IS content to output the output will end in echo $output;
  //  if there is NO content to output the output will end in return;
}
Run Code Online (Sandbox Code Playgroud)

完整的解释,我有以下......

如果其中一个函数返回一个输出,我希望它包装在一个html包装器中,所以理论上这样的东西就是我想要完成的...

public static function begin_header_wrapper() {
  // This only returns true if an output function below returns content, 
  // which for me is other than an empty return;
  include(self::$begin_header_wrapper);
}

public static function output_above_header() {
  //  my routines that check for content to output precede here
  //  if there is content to return it will end in the following statement
  //  otherwise it will end in return;
  include($begin_markup); // This is the BEGIN html wrapper for this specifc output
  // It is, so let's get this option's post id number, extract its content,
  //  run any needed filters and output our user's selected content
  $selected_content = get_post($this_option);
  $extracted_content = kc_raw_content($selected_content);
  $content = kc_do_shortcode($extracted_content);
  echo $content;
  include($end_markup); // This is the END html wrapper for this specifc output
}
public static function output_header() {
  //  the same routine as above but for the header output
}
public static function output_below_header() {
  //  the same routine as above but for the below header output
}

public static function end_header_wrapper() {
  // This only returns true if an output function above returns content, 
  // which for me is other than an empty return;
  include(self::$end_header_wrapper);
}
Run Code Online (Sandbox Code Playgroud)

我现在知道,提前我不想确定两次(一次在开始时,一次在结尾),如果其中一个输出函数有输出,当应该有一种方法用一次检查,但我想开始这个兔子洞,找出确定我的功能是否正在返回的最佳方法.

或者,如果有一个更好的方法来解决这个问题,请全力以赴,哈哈,让我知道.

我在网上看了这篇文章和其他人@ 找出函数是否有任何输出与PHP

所以最后,我只是想知道是否有更好的方法来解决这个问题,实际上你最好的方法是检查我的函数是否有输出返回所以我可以根据这些条件运行我的html包装器?

ob_get_length是最好的方式?当我查看ob目的时,这个看起来最好,最简单,但想得到一些建议,反馈.或者也许我可以检查我的变量$content是否被返回?谢谢.真的很感激!

GxT*_*uth 1

您可以捕获结果并将其存储在变量中,然后将其提供给empty() 函数。

if(!empty(($output = yourFunctionToTest(param1, paramN)))) {
   // do something with $output (in this case there is some output
   // which isn't considered "empty"
}
Run Code Online (Sandbox Code Playgroud)

这将执行您的函数,将输出存储在变量中(在本例中为 $output)并执行empty() 以检查变量内容。之后您就可以使用 $output 的内容。

请注意,empty() 将空字符串或 0 视为“空”,因此返回true

作为替代方案,您可以使用 isset() 等函数来确定变量是否不是null

http://php.net/isset

http://php.net/空