小编Jos*_*sef的帖子

函数值内的全局变量为NULL

在我的代码中,我有一个初始化MySQLi类的文件.

File a:

$db = new Database(); //MySQLi class
Run Code Online (Sandbox Code Playgroud)

无论如何,有一个包含此数据库类的文件.该文件还包括其中声明了函数的其他文件.我正在global联系$db

File b:

function xy(){
   global $db;
   $sql = "..."
   return $db->getArray($sql);
}
Run Code Online (Sandbox Code Playgroud)

Testfile:

require "file_a.php";
require "file_b.php";
require_once "PHPUnit/Framework/TestCase.php";

class testProblemStatistics extends PHPUnit_Framework_TestCase {

  testArray(){
      $this->assertTrue(array_key_exists('xy', $this->xy())
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到:
致命错误:在非对象上调用成员函数getArray()

我调查过:

var_dump($db);
function xy(){
  global $db;
  var_dump($db);
  ...
}
Run Code Online (Sandbox Code Playgroud)

第一个转储给了我MySQLi对象,
第二个转储给了我NULL

file_b中的全局变量有问题.

附加信息:我正在使用PHPUnit,我在命令提示符下运行它.在普通浏览器中一切正常.

php phpunit mysqli global-variables

3
推荐指数
1
解决办法
5203
查看次数

标签 统计

global-variables ×1

mysqli ×1

php ×1

phpunit ×1