15

我有一小部分将支付记录插入数据库。下面给出:

<?php

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

?>

但是浏览器给出了以下致命错误..

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

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

4

4 回答 4

32

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

于 2012-07-10T20:28:40.707 回答
10

在 PHP 5 中,构造函数被调用__construct。在 PHP 4 中,它曾经是类的名称,例如function payfor class pay。PHP 5 向后兼容 PHP 4,所以它仍然有效。构造函数不能static

于 2012-07-10T20:28:51.327 回答
1

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

于 2012-07-10T20:29:14.203 回答
1

与定义它的类名称相同的方法不是普通方法,而是构造函数,用于创建该类的新实例。构造函数不允许是静态的,因为它们的全部意义在于作用于新创建的类实例。

于 2012-07-10T20:30:01.497 回答