PHP:定义全局范围变量

时间:2012-09-26 06:36:43

标签: 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

的情况下才会在该页面上工作

我想在每个页面上使用该变量,并且不想使用include

在php中为文件夹定义变量还有其他选择吗?

4 个答案:

答案 0 :(得分:0)

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

您可以尝试使用php.ini的{​​{1}}自动包含变量,但仍然需要使用PHP代码。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您必须为此目的使用define()功能

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

现在将此页面包含在您要访问HOST变量的任何位置。

您可以像echo host;

一样访问此变量