2014-02-07 34 views
0

我有一个问题与可变开关情况下调用未定义的变量

(define ('THIS_PAGE', basename($_SERVER['PHP_SELF'])); 

,我在我的网站标题标签调用诸如

<title> <?=$title?><?=SITE?></title>. 

网站不断显示得很好,但在$ title变量回报的“< BR /&gt; &lt;b&gt;Notice&lt;/b&gt;: Undefined variable: title in lt;b&gt;/Applications/MAMP/htdocs/scc/sccc_2014/_240php/05a_dynamicContentc/_inc/inc_header.php&lt;/b&gt;

在线路错误

&lt;b&gt;6&lt;/b&gt;&lt;br /&gt; MAX-O-MATIC 

这是显示在我的标题标签。我在本地使用MAMP工作,但我不认为这是问题。我希望这只是一个错字,但我还是很新的,它可能是任何东西。

任何帮助表示赞赏。 是的,我试图研究一个解决方案之前,并花费时间尝试调试。如果不做适当的努力,我不会来这里寻求帮助。 谢谢

配置文件:

define ('SITE', 'MAX-O-MATIC'); //Name of Site 

define ('THIS_PAGE', basename($_SERVER['PHP_SELF'])); //Constant Current Page is X 

switch(THIS_PAGE) 
{ 
    //Set most likely scenario as the first to run 
    case 'index.php' : 
     $title = "Welcome" ; 
     $banner = "Max-o-matic"; 
     break; 

    case 'itc240.php' : 
     $title = "ITC240 |" ; 
     $banner = "Samples"; 
     break; 

    case 'itc250.php' : 
     $title = "ITC250 |" ; 
     $banner = "Samples"; 
     break; 

    default : 
     $title = ""; 
     $banner = "Default Banner"; 
} 

头文件:

<!DOCTYPE HTML> 
<html> 

<head> 

    <title> 
      <?=$title?><?=SITE?> 
    </title> 

测试页:

<?php 
//itc240.php 
include '_inc/inc_config.php'; //My arrays and stuff 
include '_inc/inc_header.php'; 
?> 

test Content</p> 

<?php 
include '_inc/inc_footer.php'; 
?> 
+0

在执行头文件之前,您似乎没有包含配置文件... –

+0

我怀疑是范围问题。 SITE被定义,思考全球。 $ title在脚本中定义,缺乏相同的全局性质。例如,如果你在一个函数之外定义$ site,并且试图在函数中访问它而不声明''global $ site'''(在函数中)或者作为一个变量传递它,你将无法使用它如预期。需要更多信息。 –

回答

1

你是如何加载一个配置文件?

请确保它已加载,然后再尝试输出$ title。

+0

我喜欢使用include的配置文件,并且在头文件之前加载它也是这样的:“<?php include'_inc/inc_config.php'; include'_inc/inc_header.php';?>

test内容

<?php include'_inc/inc_footer.php';?> – Chezshire

+0

在你的开关(...){}之后做一个var_dump($ title)输出任何东西? – CodeViking

+0

我试图做一个echo语句(<? php echo var_dump($ title);?>)并返回一个类似的错误(注意:Undefined variable:title在/Applications/MAMP/htdocs/scc/sccc_2014/_240php/05a_dynamicContent-fail/itc240.php在第8行NULL) – Chezshire