在单独的 PHP 脚本中访问全局变量?

问题描述 投票:0回答:7

我正在尝试从 PHP 脚本导入一些变量。看起来很简单,但我无法让它发挥作用。

该脚本包含一些全局变量,如下所示:

$server_hostname = "localhost";
$server_database = "kimai";
$server_username = "root";
$server_password = "";
$server_conn     = "mysql";
$server_type     = "";
$server_prefix   = "kimai_";
$language        = "en";
$password_salt   = "7c0wFhYHHnK5hJsNI9Coo";

然后在我的脚本中,我想访问这些变量,所以我已经完成了:

require_once 'includes/autoconf.php';   
var_dump($server_hostname);

但这只是输出 NULL。我也尝试过:

require_once 'includes/autoconf.php';

global $server_hostname;    
var_dump($server_hostname);

但仍然无法工作。

我在“autoconf.php”文件中添加了一些

echo
语句,以便我知道它正在加载。

知道如何访问这些变量吗?

php include scope global-variables
7个回答
3
投票

您必须首先将变量定义为全局变量:

global $server_hostname;
$server_hostname = "localhost";

2
投票

事实证明该文件包含在应用程序的其他位置,因此当我调用

require_once
时,该文件根本没有包含在内。我将其更改为
require
,现在它可以工作了。


1
投票

也许该文件未正确包含。

require_once 'includes/autoconf.php';   

检查您包含的当前工作目录

autoconf.php

试试这个

if (file_exists('includes/autoconf.php')) require_once 'includes/autoconf.php';
else echo 'File not exists';

检查一下。


0
投票

使用常量怎么样?

定义(“服务器主机名”,“本地主机”); 定义(“服务器主机名”,“本地主机”);


0
投票

如果您包含该文件并且变量是纯文本形式,而不是在函数/类中,那么它无需全局即可工作

转到您的 php.ini 并将 display_errors=On 和错误设置为 E_ALL,这样您就会看到哪个是正确的原因


0
投票

使用和更正全局变量的更好方法是首先为变量赋值,然后声明全局变量。 这是:

$server_hostname = "localhost";
global $server_hostname;

© www.soinside.com 2019 - 2024. All rights reserved.