php不会从其他文件导入变量

时间:2016-02-08 16:46:17

标签: php mysql

我正在使用登录/注册系统和mysql处理云系统,但问题是php不会导入包含的变量。

这是我的配置文件:

<?php
// Connection details
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
 ?> 

我的代码包含配置文件:

require("/classes/config.class.php");

当我尝试回显配置中定义的变量时会出现此错误:

  

注意:未定义的变量:第2行的C:\ xampp \ htdocs \ index.php中的servername

我在本地计算机上使用xampp它有PHP版本5.5.30。

编辑:php的第一行,来自评论

<?php 
// Include classes require("/classes/user.class.php"); 
require("/classes/password.class.php"); 
// Include configuration require("/classes/config.class.php"); 
echo $servername; echo $username; echo $password; echo $dbname;

4 个答案:

答案 0 :(得分:3)

我写了一个答案,因为我不能在评论中输入回车。

index.php 中的代码(如上面的评论):

<?php // Include classes require("/classes/user.class.php"); require("/classes/password.class.php"); // Include configuration require("/classes/config.class.php");
echo $servername;
(...)

双斜杠//是一个注释符号,意味着将忽略同一行中的所有后续文本。

我建议您(也为了更好的代码清晰度)以这种方式进行编辑:

<?php
    // Include classes 
    require("/classes/user.class.php");
    require("/classes/password.class.php");
    // Include configuration 
    require("/classes/config.class.php");

    echo $servername;
    (...)

答案 1 :(得分:2)

Config.php文件:

$database_host = "host";
$database_user = "user";
$database_pass = "pass";
$database_name = "name";

您要从以下位置调用Config变量的其他文件:

require_once 'Config.php';
$db = mysqli_connect($database_host, $database_user, $database_pass, $database_name);

答案 2 :(得分:1)

如果这不起作用,你可能只是在错误的范围内。

可能是您的包含在函数内部,然后您需要将变量的设置更改为:

$GLOBALS['servername'] = 'localhost';

或者您正在函数/类中使用变量。然后你必须使用全局关键字

myFunction() {
  //$servername is not defined here
  global $servername;
  // now $servername is defined and the global var is used
}

但我认为你应该做一些更有用的事情:使用常数。

define('SERVERNAME','localhost');

后来获得常数(在任何范围内):

echo SERVERNAME;

答案 3 :(得分:0)

在包含变量之前,您应该检查是否尝试使用变量。

同时检查文件是否正确包含(require();在php标签中,而不是注释(//require))