无法在PHP中定义变量?

时间:2011-03-19 09:49:08

标签: php variables

好的,所以内容页面使用了这个:

$tab = "Friends";
$title = "User Profile"; 
include '(the header file, with nav)';

标题页面的代码为:

if ($tab == "Friends") { 
echo '<li id="current">'; 
} else { 
echo '<li>'; 
}

问题是,if $tab == Friends条件从未被激活,并且没有其他变量从内容页面传送到标题页。

有谁知道我做错了什么?

更新: 好吧,当我使用../scripts/filename.php时,问题似乎消失了,只有当我使用完整的URL时才会出现问题?

任何想法为什么?

3 个答案:

答案 0 :(得分:2)

当您include完整网址时,您不包含PHP脚本 - 您将包含其生成的HTML。就像你去http://wherever.your.url.goes一样,但它是由服务器而不是浏览器完成的。该脚本在一个完全独立的进程中运行,由服务器自身的单独请求引起,并且两者之间没有共享$variable

简短版本:当您加入http://wherever.your.url.goes时,$tab将始终为空。如果包含实际文件名,则将共享该变量。

答案 1 :(得分:1)

您发布的代码应该有效。你是如何实际包含该文件的?这是否发生在函数内?然后你需要使用global语句才能工作。例如:

文件1:

function my_include($file) {
    global $tab; // <-- add this
    include '/some/path/' . $file;
}

$tab = 'Friends';
my_inlcude('file_2.php');

文件2:

if ($tab == 'Friends') { ... }

答案 2 :(得分:1)

  1. 现在你明白为什么发布一些存根和字符而不是真实代码

  2. 的做法很糟糕
  3. 试着想一想,你的问题不是火箭科学。包含就像复制粘贴代码代替包含运算符。在浏览器中加载您的包含的URL,复制生成的代码并将其粘贴到您的第一个文件中并查看。