我正在尝试在函数中设置一个变量,这样当调用该函数时,它会为脚本提供一个变量值,以通知页面该函数被调用。这只是显示一条消息:
function MyMessage($display_message)
{
echo $display_message;
}
这很好,所以当我打电话时:
MyMessage("Updated Database!");
太有用了。问题是该函数在某些页面中的头文件之前显示此消息,因为在调用之前标题位于页面的底部。有可能使它像:
function MyMessage($display_message)
{
$function_ran = 1;
echo $display_message;
return $function_ran;
}
然后在脚本中显示
if ( $function_ran != 1 )
{
include("header.php");
}
这样,如果没有运行该功能,它只显示标题。问题是调用函数时不返回$ function_ran值。我怎么能这样做?
答案 0 :(得分:2)
如果您不想使用全局变量,则需要存储函数的结果:
$function_ran = MyMessage("Updated Database!");
if ( $function_ran != 1 )
{
include("header.php");
}
答案 1 :(得分:1)
将$function_ran
设为全局,并确保在函数中使用全局版本。
$function_ran = 0;
# stuff
function MyMessage($display_message)
{
global $function_ran;
$function_ran = 1;
echo $display_message;
}
答案 2 :(得分:1)
如果你真的想要使用函数的返回,你必须将返回值分配给变量,如:
$function_ran = MyMessage("Updated Database!");
当然,可以使$function_ran
全局,但不必使用返回。
我肯定会去分配返回值,因为它更透明,编程风格更好。
希望有所帮助
答案 3 :(得分:1)
该函数可以使用静态变量来避免两次执行其工作,而不是在调用函数之前进行检查:
function MyMessage($display_message) {
static $function_ran = false;
if ($function_ran) {
return;
}
$function_ran = true;
echo $display_message;
}
答案 4 :(得分:0)
您应该使用会话,您应该使用会话处理程序并使用它,您可以为此函数的返回值设置会话。
答案 5 :(得分:0)
您可以将标志存储在全局中,但要从使用global关键字所需的函数中修改全局变量。
类似的东西:
$function_ran = 0;
function MyMessage($display_message) {
global $function_ran;
$function_ran = 1;
echo $display_message;
}