这是最奇怪的错误! 这可能是一些愚蠢的事情,但我不知道如何解决它。 如果有人能帮忙,我将不胜感激! 我有三个文件,一个叫做items.php,另一个叫做tableFunctions.php,第三个叫做mysql.php。 我使用两个名为"mysql"和"tableFunctions"的全局对象。 它们存储在文件'mysql.php'中,并且分别是"表函数.php"。 在每个文件中,我创建其对象的一个实例,并将其分配给全局变量 $_mysql 或 $_table。 喜欢这个:
在文件 mysql.php:
global $_mysql;
$_mysql = new mysql();
在文件表中函数.php:
global $_table;
$_table = new tableFunctions();
以下是它应该如何工作:
项目.php文件包括表函数.php文件...反过来,它需要 mysql.php 文件,所以它也包含它。
在 items.php 文件中,我调用方法getTable(),它包含在对象 tableFunctions 中。(以及变量 $_table。喜欢这个:
$t = $_table->getTable('items');
getTable 函数调用方法,arrayFromResult(),它包含在对象 mysql 中。(在变量 $_mysql 中。喜欢这个:
$result = $_mysql->arrayFromResult($r);
这就是我得到错误的地方。 PHP 说变量 '$_mysql' 是未定义的,但我在 'mysql.php' 文件中定义了它。(见上文) 我还包含 mysql.php 和以下代码:
include_once 'mysql.php';
我不知道出了什么问题! 如果有人能帮忙,将不胜感激。可以通过以下链接下载源文件:https://www.dropbox.com/sh/bjj2gyjsybym89r/YLxqyNvQdn
这是一个常见的错误,在定义的位置,你只需要以下行:
$_mysql = new mysql();
当你想在函数中使用它时,只有在那里你必须将其声明为全局变量(否则它被视为像任何其他函数变量一样):
global $_mysql;
因此,例如,如果我们采用您的方法:
function getTable($tableName) {
$r = mysql_query("SELECT * FROM $tableName");
err($r, 'mysql returned null when getting table!');
$result = $_mysql->arrayFromResult($r);
return $result;
}
应改为:
function getTable($tableName) {
global $_mysql;
$r = mysql_query("SELECT * FROM $tableName");
err($r, 'mysql returned null when getting table!');
$result = $_mysql->arrayFromResult($r);
return $result;
}