Can't call an object method. PHP reports variable undefined

Posted by user1285697 on Stack Overflow See other posts from Stack Overflow or by user1285697
Published on 2012-06-21T02:19:26Z Indexed on 2012/06/21 9:16 UTC
Read the original article Hit count: 137

Filed under:

This is the weirdest bug! It is probably something silly, but I have no idea how to fix it. If anyone could help, I would be most grateful! I have three files, one is called items.php, another is called tableFunctions.php, and the third is called mysql.php. I use two global objects called 'mysql' and 'tableFunctions'. They are stored in the files 'mysql.php', and 'tableFunctions.php', respectively. In each file, I create an instance of its object, assigning it to the global variable $_mysql, or $_table. like this:

In the file mysql.php:

global $_mysql;
$_mysql = new mysql();

In the file tableFunctions.php:

global $_table;
$_table = new tableFunctions();

Here's how it is supposed to work:

The items.php file includes the tableFunctions.php file... Which in turn, needs the mysql.php file, so it includes it too.

In the items.php file, I call the method getTable(), which is contained in the object tableFunctions.(and in the variable $_table.) Like this:

$t = $_table->getTable('items');

The getTable function calls the method, arrayFromResult(), which is contained within in the object mysql.(and in the variable $_mysql.) Like this:

$result  = $_mysql->arrayFromResult($r);

That's where I get the error. PHP says that the variable '$_mysql' is undefined, but I defined it in the 'mysql.php' file.(see above) I also included mysql.php with the following code:

include_once 'mysql.php';

I have no idea what is wrong! If anyone can help that would be much appreciated. The source files can be downloaded with the following link: https://www.dropbox.com/sh/bjj2gyjsybym89r/YLxqyNvQdn

© Stack Overflow or respective owner

Related posts about php