我正在尝试从 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
语句,以便我知道它正在加载。
知道如何访问这些变量吗?
您必须首先将变量定义为全局变量:
global $server_hostname;
$server_hostname = "localhost";
事实证明该文件包含在应用程序的其他位置,因此当我调用
require_once
时,该文件根本没有包含在内。我将其更改为require
,现在它可以工作了。
也许该文件未正确包含。
require_once 'includes/autoconf.php';
检查您包含的当前工作目录
autoconf.php
试试这个
if (file_exists('includes/autoconf.php')) require_once 'includes/autoconf.php';
else echo 'File not exists';
检查一下。
使用常量怎么样?
定义(“服务器主机名”,“本地主机”); 定义(“服务器主机名”,“本地主机”);
如果您包含该文件并且变量是纯文本形式,而不是在函数/类中,那么它无需全局即可工作
转到您的 php.ini 并将 display_errors=On 和错误设置为 E_ALL,这样您就会看到哪个是正确的原因
使用和更正全局变量的更好方法是首先为变量赋值,然后声明全局变量。 这是:
$server_hostname = "localhost";
global $server_hostname;