确定函数是否有输出的最佳方法?
Best way to determine if a function has an output?
我有一个函数列表,这些函数 运行 是一个相当深入的例程,用于确定从哪个 post_id 获取其内容并将其输出到网站的前端。
当这个函数 return 是它的内容时,我希望它被包装在一个 html 包装器中。我希望此 html 包装器仅在函数具有 return.
的输出时加载
例如,我有以下...
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;
}
在完整的解释中,我有以下...
如果这些函数之一 return 是一个 输出 我希望它被包装在一个 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);
}
我现在知道,提前我不想确定两次(一次在开始,一次在结束)如果一个输出函数有输出,什么时候应该有办法做这只需一次检查,但我想从这个兔子洞开始,找出确定我的功能是否 return 的最佳方法。
或者如果有更好的方法来解决这个问题,请全力以赴,哈哈,让我知道。
我在线查看了这篇文章和其他文章
@Find out if function has any output with php
所以最后,我只想知道是否有更好的方法来解决这个问题,以及您认为检查我的函数是否有输出到 return 的最佳方法是什么,这样我就可以运行 我的 html 包装器基于那些条件?
ob_get_length 会是最好的方法吗?当我查看 ob 目的时,这个似乎是最好的,也是最简单的,但我想得到一些建议和反馈。或者也许我可以检查我的变量 $content
是否被 returned?谢谢。真的很感谢!
您可以捕获结果并将其存储在一个变量中,然后将其提供给 empty() 函数。
if(!empty(($output = yourFunctionToTest(param1, paramN)))) {
// do something with $output (in this case there is some output
// which isn't considered "empty"
}
这会执行您的函数,将输出存储在变量中(在本例中为 $output)并执行 empty() 以检查变量内容。
之后你就可以使用$output的内容了。
请注意,empty() 将空字符串或 0 视为 "empty",因此返回 true
。
作为替代方案,您可以使用 isset() 等函数来确定变量是否不是 null
。
我有一个函数列表,这些函数 运行 是一个相当深入的例程,用于确定从哪个 post_id 获取其内容并将其输出到网站的前端。
当这个函数 return 是它的内容时,我希望它被包装在一个 html 包装器中。我希望此 html 包装器仅在函数具有 return.
的输出时加载例如,我有以下...
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;
}
在完整的解释中,我有以下...
如果这些函数之一 return 是一个 输出 我希望它被包装在一个 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);
}
我现在知道,提前我不想确定两次(一次在开始,一次在结束)如果一个输出函数有输出,什么时候应该有办法做这只需一次检查,但我想从这个兔子洞开始,找出确定我的功能是否 return 的最佳方法。
或者如果有更好的方法来解决这个问题,请全力以赴,哈哈,让我知道。
我在线查看了这篇文章和其他文章 @Find out if function has any output with php
所以最后,我只想知道是否有更好的方法来解决这个问题,以及您认为检查我的函数是否有输出到 return 的最佳方法是什么,这样我就可以运行 我的 html 包装器基于那些条件?
ob_get_length 会是最好的方法吗?当我查看 ob 目的时,这个似乎是最好的,也是最简单的,但我想得到一些建议和反馈。或者也许我可以检查我的变量 $content
是否被 returned?谢谢。真的很感谢!
您可以捕获结果并将其存储在一个变量中,然后将其提供给 empty() 函数。
if(!empty(($output = yourFunctionToTest(param1, paramN)))) {
// do something with $output (in this case there is some output
// which isn't considered "empty"
}
这会执行您的函数,将输出存储在变量中(在本例中为 $output)并执行 empty() 以检查变量内容。 之后你就可以使用$output的内容了。
请注意,empty() 将空字符串或 0 视为 "empty",因此返回 true
。
作为替代方案,您可以使用 isset() 等函数来确定变量是否不是 null
。