我有一小部分将付款记录插入数据库。以下是:
<?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中不能是静态的
我很困惑,为什么发生错误..请帮助我理解。
答案 0 :(得分:30)
如果您的方法名称与类的名称相同,则将其视为构造函数。构造函数不能是静态的。您必须重命名此类或方法,或使方法不静态,并在您想要使用它时创建该类的实例。
答案 1 :(得分:10)
在PHP 5中,构造函数称为__construct
。在PHP 4中,它曾经是类的名称,例如function pay
class pay
。 PHP 5向后兼容PHP 4,因此仍然有效。构造函数不能是static
。
答案 2 :(得分:1)
构造函数在创建对象时被调用,因此不能是静态的。通过命名与类相同的函数,php认为你希望它是构造函数
答案 3 :(得分:1)
一个名称与其定义的类名相同的方法不是普通方法,而是构造函数,用于创建类的新实例。构造函数不允许是静态的,因为它们的重点是对新创建的类实例进行操作。