在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中的变量,并且能够直接在函数内部使用它们而不必担心包含它们?
谢谢!
答案 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”;