难以传递变量通过包括使用全局变量
我有一个三层树显示页面上的内容。它使用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;
没有必要在所有的这些$global
线。在主脚本中定义的任何变量都在include
d文件中定义。这基本上就像把代码中include
d文件,并在include
调用的地方顺手把它(只有少数例外)
还没有任何通过。 – Tiny 2012-01-04 05:35:19
这条线:
include_once 'page2.php;
应更改为:
include_once 'page2.php';
你有一个缺少的报价。
你有没有尝试删除所有这四个全局线?我不知道这是否是问题,但他们根本没有必要!
当包含或需要文件时,上面声明的所有变量都可用于包含的/必需的文件。
如果这没有解决它,也许你有包括错误的路径。
包含作品。 page2只是无法识别索引中的变量。 – Tiny 2012-01-04 06:29:30
的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;
}
我注意到你已经使用'include_once()的'。你有没有在代码的早些时候在其他地方加入'page2.php'? – 2012-01-04 05:31:08
@迈克尔没有,我改变它以防止更多的混淆。 – Tiny 2012-01-04 05:34:20