PHP在函数内部使用一个中心变量文件

时间:2012-08-21 11:41:40

标签: php

在PHP中,以下情况的正确方法是什么:

我有一个'中心'vars.php,其中包含一些参数,如MySQL主机名,用户,pass,一个$ Test变量,它指示代码是否在测试环境中运行,以及我在整个过程中使用的其他一些变量我的网站。

然后我有一个functions.php,其中包含我可以在整个网站中使用的所有功能。

在其中一些函数中,我可能需要一些vars.php文件中的变量。

在PHP中“vwhere.php”可用于“无处不在”的正确方法是什么? 现在我这样做:

vars.php:
   <?php
   if(strstr($_SERVER['HTTP_HOST'],"localhost"))
   {
       $Test = true;
   }
   ?>

functions.php:
   <?php
   function DoSomething()
   {
      include "vars.php";
      if($Test)
      {
         $String = "Test is true!";
      }
         else
         {
            $String = "Test is false!";
         }
      return $String;
   }
   ?>

index.php:
   <?php
   include "vars.php";
   include "functions.php;
   $DoSomething = DoSomething();
   echo $DoSomething;
   ?>

虽然这确实有效,但我必须在我定义的每个函数中包含vars.php,这对我来说似乎不是一个“好”的解决方案。 有没有办法直接在全局范围内定义vars.php中的变量,并且能够直接在函数内部使用它们而不必担心包含它们?

谢谢!

3 个答案:

答案 0 :(得分:4)

正确的方法是使用常量而不是变量。

答案 1 :(得分:2)

您正在寻找全局变量。如果您将文件包含在页面顶部,然后将每个文件声明为函数中的全局文件,如下所示:

include('vars.php');


function whatHost()
{
  global $host;
  echo $host;
}

它会起作用。这是非常糟糕的做法,因为全球状态在95%的情况下非常糟糕。 PHP具有强大的面向对象功能,允许您在对象中封装功能和状态。我建议您阅读并了解更多存储应用程序配置的正确方法。请注意,对于这种特殊情况,您可以使用常量(:

答案 2 :(得分:1)

使用常量。一起定义所有内容并始终在类/文件之上。

常量是唯一的,我们将它们用作配置信息或静态/ const数据。

如果你是起诉DEFINE,请记住使用const作为字符串而不是var,例如:

define(“BASE_PATH”,“C:// base /”);

$ dir = BASE_PATH。 “图像/ dropbox.txt”;

http://php.net/manual/en/language.constants.php