难以通过变量传递包括使用全局变量

时间:2012-01-04 05:24:57

标签: php include global

我有一个三层树,用于在页面上显示内容。它使用includes来显示基于URL的特定PHP页面。不会发生的是变量在包含的PHP文件中无法理解。

的index.php

// example url http://fakesite.com/?color=red&user=999
$user = $_GET['user'];

if ($_GET['color'] == 'red')        
       {$color = 'red';}
elseif ($_GET['color'] == 'white')      
       {$color = 'white';}
else 
       {$color = 'blue';}

global $color;
global $user;
include 'page2.php';

page2.php

global $color;
global $user;
echo 'hi '.$user.'I hear you like '.$color;

4 个答案:

答案 0 :(得分:3)

根本不需要那些$global行。主脚本中定义的任何变量都在include d文件中定义。这基本上就像取include d文件中的代码并将其推到include调用的位置(除了少数例外)

答案 1 :(得分:0)

这一行:

include_once 'page2.php;

应改为:

include_once 'page2.php';

你的报价不足。

答案 2 :(得分:0)

您是否尝试删除所有这四条全局线?我不知道这是不是问题,但根本不需要它们!

当包含或要求文件时,上面声明的所有变量都可用于包含/所需文件。

如果这没有解决它,也许你在包含上有错误的路径。

答案 3 :(得分:0)

<强>的index.php

<?php
    $user = $_GET['user'];

    if ($_GET['color'] == 'red')        
           {$color = 'red';}
    elseif ($_GET['color'] == 'white')      
           {$color = 'white';}
    else 
           {$color = 'blue';}
    include 'page2.php';
?>

<强>使page2.php

<?php
    echo 'hi '.$user.'I hear you like '.$color;
?>

全球范例

function dosomethingfunky(){
    global $user, $color;
    echo 'hi '.$user.'I hear you like '.$color;
}