Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在函数中使用一个中心变量文件_Php - Fatal编程技术网

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

PHP在函数中使用一个中心变量文件,php,Php,在PHP中,对于以下情况,正确的前进方向是什么: 我有一个'central'vars.php,其中包含一些参数,如MySQL主机名、用户、pass、一个$Test变量,该变量指示代码是否在测试环境中运行,以及我在整个站点中使用的一些其他变量 然后我有一个functions.php,它包含了我可以在整个站点中使用的所有函数 在其中一些函数中,我可能需要一些vars.php文件中的变量 什么是使vars.php在php中的“无处不在”可用的正确方法? 现在我是这样做的: vars.php: &

在PHP中,对于以下情况,正确的前进方向是什么:

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

然后我有一个functions.php,它包含了我可以在整个站点中使用的所有函数

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

什么是使vars.php在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;
   ?>
include('vars.php');


function whatHost()
{
  global $host;
  echo $host;
}
vars.php:
functions.php:
index.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;
   ?>
include('vars.php');


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

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

使用常量。一起定义并始终在类/文件的顶部

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

如果要定义,请记住将常量用作字符串而不是变量,例如:

定义(“基本路径”、“C://BASE/”)

$dir=BASE_PATH.“images/dropbox.txt”


此外,您可能希望使用include\n来记录其他信息,例如您为什么要链接,这会有所帮助,只是粘贴链接通常没有完整的解释那么有帮助。