【问题标题】:Fatal error: Call to undefined method stdClass致命错误:调用未定义的方法 stdClass
【发布时间】:2009-10-14 19:35:43
【问题描述】:

我收到一条错误提示

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

第 68 行对应:

if(!$ip2c->mysql_con())

我的脚本开头确实有 require_once() 语句

这可能是什么问题?

谢谢

【问题讨论】:

  • 问题是$ip2c 可能不是你所期望的那样。
  • $ip2c 是如何创建的?请给出代码示例
  • 如果您的“$ip2c”值来自查询,请确保确实返回了一个值。

标签: php mysql class


【解决方案1】:

Dusoft says 这可能意味着:

  • $ip2c 对象不存在,

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

他还说这可能意味着:

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

    这是真的,但不是很有帮助,因为很难将方法添加到 stdClass

另外它可能与序列化有关quote

  • 当类实例被序列化到磁盘,然后在另一个请求中重新读取/反序列化但类定义尚未加载时,通常会引发此错误,因此 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();

查看better example here

【讨论】:

  • 这是迄今为止唯一正确的答案。由于其他答案所述的原因,您不会收到有关 stdClass 的错误消息。
  • 我注意到当在 PHP 对象中抛出异常时,我的对象变成了 NULL。我放弃了试图弄清楚为什么会发生这种情况。
【解决方案2】:

这意味着 $ip2c 对象不存在或 mysql_con 函数不是您尝试调用的类的一部分。

【讨论】:

  • -1 不正确。见my answer below
  • 类存在 - stdClass 只是不包含 mysql_con() 方法
【解决方案3】:

我认为这是因为“extension=php_mysql.dll”扩展未在 php.ini 中加载。 一起来看看

phpinfo();

【讨论】:

    【解决方案4】:

    这可能是错误的代码。当我有这行代码时,我曾经设法得到那个错误:

    if ($myObj->property_exists('min')){
        // do something
    }
    

    导致这样的错误行:

    PHP 致命错误:在 ### 行的 myFile.php 中调用未定义的方法 stdClass::property_exists()

    我后来把这条线改成:

    if (property_exists($myObj, 'min')) {
        // do something
    }
    

    所以也要检查一下这种可能性。

    【讨论】:

      【解决方案5】:

      该对象很可能不存在。请向我们展示您如何创建它的代码。如果您在另一个类中使用它(例如,可能在 __construct 函数中创建它),使用:

      $ip2c = new Class;
      

      不会剪掉它。而是这样做:

      $this->ip2c = new Class;
      

      然后

      $this->ip2c->mysql_con();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 2019-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-02
        • 1970-01-01
        相关资源
        最近更新 更多