我有一个函数列表,它运行一个相当深的例程,以确定从哪个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;
}
在完整的解释中,我有以下…
如果其中一个函数返回输出我希望它被包装在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);
}
我知道现在,提前我不想确定两次(一次在开始,一次在结束)如果一个输出函数有输出,当应该有一种方法通过一次检查来做到这一点时,但是我想开始这个兔子洞,并找出确定我的函数是否返回一些东西的最佳方法。
或者如果有一个完全更好的方法来处理这个问题,请全力以赴,哈哈,让我知道。我在网上看了这篇文章和其他一些文章查看函数是否有php 输出所以最后,我只是想知道是否有更好的方法来处理这个问题,以及你认为检查我的函数是否有输出返回的最佳方法是什么,所以我可以根据这些条件运行我的html包装器?
ob_get_length是最好的方法吗?当我看了所有的目的,这一个似乎是最好的,最简单的,但我想得到一些建议,反馈。或者我可以检查变量$content
是否返回?谢谢。非常感谢!
可以捕获结果并将其存储在一个变量中,然后将该变量赋给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视为"空",因此返回true
。
作为一种替代方法,您可以使用isset()之类的函数来确定变量是否不是null
。