请查看下面的示例代码,当我运行它时,在头函数调用中没有翻译定义的部分,是否有一种特殊的方法来执行语法,或者这种方法是不可能的?
<?PHP
session_start();
define('SITE_URL', 'http://testsddf.com');
$_SESSION['user_role'] = 0;
//if a user is not active, redirect to verification/suspended page
if($_SESSION['user_role'] == 0){
header('Location: SITE_URL');
}
?>
答案 0 :(得分:10)
你做不到这样的事情:
define('SITE_URL', 'http://testsddf.com');
header('Location: SITE_URL');
在字符串内部不插入常量:它不是变量(并且您使用的是单引号字符串,因此它也不适用于变量,这里)
在这种情况下,您必须使用字符串连接:
define('SITE_URL', 'http://testsddf.com');
header('Location: ' . SITE_URL);
并且,只是将手册的链接作为参考,你可以看看Variable parsing:没有关于常数的东西 - 即使这是不幸的。
答案 1 :(得分:0)
你要么做......
header('Location: ' . SITE_URL);
...或...
header("Location: SITE_URL");
...单引号不扩展变量。 (有关详细信息,请参阅this manual page。)