你能在函数调用中调用PHP定义的值吗?

时间:2009-12-23 16:39:36

标签: php

请查看下面的示例代码,当我运行它时,在头函数调用中没有翻译定义的部分,是否有一种特殊的方法来执行语法,或者这种方法是不可能的?

<?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');
}

?>

2 个答案:

答案 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。)