我正在重构一个旧的PHP应用程序,实现了PHPUnit测试和Composer。
我显然遇到了全局变量的问题,现在我担心自己的应用程序可能做错了。
我有一个globals.inc.php,其中包含许多用define("SOME_VARIABLE","some value");
定义的常量
在同一文件中,我使用一些常量定义了数据库连接;
$mysqlConn = new mysqli(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQLDATABASENAME, 3306);
if ($mysqlConn->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqlConn->connect_errno . ") " . $mysqlConn->connect_error;
}
$mysqlConn->query("SET NAMES 'utf8'");
在我执行应用程序时工作正常。但是,当我执行PHPunit测试时,出现一个 Uncaught错误:在实现如下的数据库连接上调用成员函数query()为空:
<?
include_once "globals.inc.php";
function somefunct{
global $mysqlConn;
if (!$QRY = $mysqlConn->query($strSQL)) {
error_log("Select failed[language::getLangArray()] : " . $mysqlConn->error);
} else {
//..more logic..
}
}
我认为该问题与global variables are null when using PHPUnit有关,但是我看不到解决方案...
PHP版本是7