首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在静态函数上显示致命错误

问为什么在静态函数上显示致命错误
EN

Stack Overflow用户
提问于 2012-07-10 20:26:56
回答 4查看 7.3K关注 0票数 15

我有一个很小的类别,把付款记录插入数据库。如下所示:

代码语言:javascript
复制
<?php

class pay{
        public static function pay($user, $income, $type, $refid='--'){
        mysql_query("INSERT INTO earn VALUES (NULL, '$user', '$income', '$refid', '$type', ".time().")");   
        }
    }

?>

但是浏览器提供了以下致命错误。

致命错误:构造函数支付::pay()在第41行的F:\xampp\htdocs\new\sts\class.php中不能是静态的

我很困惑为什么会发生错误。请帮我理解一下。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-10 20:28:40

如果您的方法名称与类的名称相同,则它被视为构造函数。构造函数不能是静态的。必须重命名此类或方法,或使该方法不静态,并在要使用该方法时创建该类的实例。

票数 34
EN

Stack Overflow用户

发布于 2012-07-10 20:28:51

在PHP5中,构造函数称为__construct。在PHP4中,它曾经是类的名称,例如function pay for class pay。PHP 5与PHP 4向后兼容,因此仍然有效。构造函数不能是static。

票数 10
EN

Stack Overflow用户

发布于 2012-07-10 20:29:14

构造函数是在创建对象时调用的,因此不能是静态的。通过将函数命名为与类相同的函数,php认为您希望它成为构造函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11421396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档