2012-09-26 322 views
-1

我处于这种情况。PHP:定义全局范围变量

我的PHP文件夹结构是这样

UI 
    user 
    login.php 
    logout.php 
    jquery 
    somejs 

    css 
    somecss 
blah.php 
blah.php 

现在导入任何CSS,JS或任何PHP文件我用像

localhost/UI/user/index.php // example 

的文件路径现在我试图定义一个全局变量在任何页面上如

<?php 
    $somevar = "localhost"; 
    GLOBAL $somevar; 
    ?> 

因此,我可以导入任何css js像

<?php echo $somevar ;?>/UI/user/index.php // example 

问题:它是工作在该网页上只在我声明的变量为GLOBAL

我想使用的变量中的每个页面上,并且不希望使用包括

有任何其他替代方案来定义一个变量的文件夹在PHP中?

+0

不要让我知道如果任何澄清要求 – user1667633

+0

好,一个可能的黑客是用php.ini的混乱。但这是一个**黑客**。你最好只是把你的文件包含在任何地方。或者,更好的是,不要使用全局变量。我会创建一些'ModuleLoader'助手类,将它包含到任何地方,并让它管理这些导入。甚至更好,使用[自动加载](http://php.net/manual/en/language.oop5.autoload.php)功能。 – J0HN

回答

0

您不要声明变量与global。你可以在你的方法或函数体内使用它,即使它已经被设置(或者使用你的术语“声明”)在它之外。因此,除非声明变量,否则无法获得变量。如果没有运行PHP代码(简化,但在这里没关系),就没有办法做到这一点。并且代码不是来自任何地方,因此需要设置变量的所述代码的includerequire

您可以尝试使用php.iniauto_include_file以使您的变量自动包含,但仍需要使用PHP代码。

但你通常做错了。将所有全局变量移动到类中,设置自动装载器和静态访问。代码将会更清洁。

0

好吧,我的经验说.. global用于访问函数内部定义的函数内部的变量。 可以有很多不同的解决方案,我会建议使用会话或cookie。将数据存储在会话/ Cookie中,并在需要时进行访问。

0

您可以使用特殊的PHP定义的$ GLOBALS数组。 $ GLOBALS数组是一个关联数组,其中全局变量的名称是键,该变量的内容是数组元素的值。请注意$ GLOBALS是如何存在于任何范围内的,这是因为$ GLOBALS是超全球性的

您可能不需要定义全局变量来将css,js或任何静态文件即图像等应用到您的应用程序。您可以使用相对路径来包含js和css文件。你可以参考this article了解更多关于相对和绝对路径。

0

你,无论你想访问HOST变量使用define()功能用于此目的

config.php 
<?php 
define("host", "localhost"); 
?> 

现在包括这个页面。

你可以访问此变量这样echo host;