注意:未定义索引:核心AND注意:尝试获取非对象的属性并发生致命错误:

时间:2014-04-10 16:02:58

标签: php undefined

我正在尝试用PHP编写服务器代码,但我遇到了一些错误:

  

注意:未定义的索引:第2行/var/www/pages/home.php中的核心

     

注意:尝试在第3行的/var/www/pages/home.php中获取非对象的属性

     

致命错误:在第3行的/var/www/pages/home.php中调用非对象的成员函数query()和代码:

代码是:

$core = $GLOBALS["core"];
$core->mysql->query("delete from `promotions` where `end`<=" . time() . ";");
$promotions = $core->mysql->fetch_array("select * from `promotions` where `end`>" . time() . ";");
if(!in_array("lobby", $promotions)) $promotions[] = array("chat"=>"Lobby");

2 个答案:

答案 0 :(得分:2)

PHP告诉您core是未定义的索引。这意味着您的core数组中没有名为$GLOBALS的索引。这意味着在运行此函数之前,您尚未在全局范围内的任何位置定义$core

因此,$core不能成为对象。因此,通过编写$core->mysql,您试图获取非对象的属性。因此,PHP告诉您正在尝试获取非对象的属性。

因此,$core->mysql也不是对象。因此,通过编写$core->mysql->query(...),您试图调用不是对象的方法。因此,PHP告诉您正在尝试在非对象上调用成员函数(方法)。

一切都是完全合乎逻辑的,并通过实际上非常清楚的错误消息向您解释。您的问题是$core未定义。其他所有东西都像液态水银一样流下来......一个倾斜的东西。

答案 1 :(得分:0)

1)var_dump($GLOBALS)并确保其中有core作为键

2)你的$ GLOBALS ['core']是某种mySql对象吗?

第二个通知是因为未找到核心且NULL->mysql->query无效