致命错误:调用未定义的方法stdClass

joj*_*jez 3 php mysql class

我得到一个错误说

致命错误:在第68行的........../.../includes/script/import.php中调用未定义的方法stdClass :: mysql_con().

第68行对应于:

if(!$ip2c->mysql_con())
Run Code Online (Sandbox Code Playgroud)

require_once()我的脚本开头有一个声明

这可能是什么问题?

谢谢

JW.*_*JW. 10

杜斯特说它可能意味着:

  • $ip2c 对象不存在,

    这是正确的,因为你会得到一个不同的错误" Fatal error: Call to a member function mysql_con() on a non-object"

他还说这可能意味着:

  • mysql_con 函数不是您要调用的类的一部分

    这是真的但不是那么有用,因为它很难添加方法stdClass.

另外它可能与序列化报价有关:

  • 当类实例被序列化到磁盘,然后在另一个请求中重新读取/反序列化但是类定义尚未加载时,通常会抛出此错误,因此PHP将其创建为"stdClass"(标准类).

或者最有可能的是,我认为:

  • $ip2c变量不是一个对象,然后PHP默默地它转换成为stdClass的某处在上面的代码.

    如果您直接在其上分配属性,则可能会发生这种情况.

喜欢:

 $ip2c = null;

 //php casts $ip2c to 'stdClass'
 $ip2c->foo = bah;

 //Fatal error: Call to undefined method stdClass::mysql_con() in...
 $ip2c->mysql_con();
Run Code Online (Sandbox Code Playgroud)

在这里看一个更好的例子.