我打算使用元刷新的上下文不需要我关心后退按钮、安全性、爬虫、响应代码,也不需要任何通常建议不要使用 HTTP 元刷新的最佳实践。我不想使用客户端脚本。
注意这是 WordPress。不正确的结果表明我没有正确的 PHP 语法,这就是我要问的问题:使以下元刷新能够按预期运行的正确语法是什么......
<?php
$scrnD_refresh_duration = 2;
$scrnD_refresh_url = 'http://wordpress.org';
add_action('wp_head', 'scrnD_add_meta_refresh');
function scrnD_add_meta_refresh() {
echo '<meta http-equiv="refresh" content="'. $scrnD_refresh_duration .'; url='. $scrnD_refresh_url .'">';
}
?>
//echo 按预期显示值...
echo $scrnD_refresh_duration; // displays 2
echo $scrnD_refresh_url; // displays http://wordpress.org
//硬编码值按预期刷新...
echo '<meta http-equiv="refresh" content="2; url=http://wordpress.org">';
//查看源代码显示该函数生成没有值...
<meta http-equiv="refresh" content="; url=">
函数中使用的正确语法是什么?
最佳答案
PHP 中的函数有自己的“作用域”,这意味着它有自己的一组变量,独立于函数外部的变量。
这就是为什么 $scrnD_refresh_duration
和 $scrnD_refresh_url
在您的函数中是空的:它们从未在那里定义。函数外部的定义不适用。
对于此类情况,PHP 提供了 global
语句,可从全局范围“拉入”变量。像这样使用它:
function scrnD_add_meta_refresh() {
global $scrnD_refresh_duration, $scrnD_refresh_url;
// ...
}
关于php - 更正 PHP 语法以将值传递给 HTTP 元刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201382/