2012-07-10 77 views
13

我有一小部分插入支付记录到数据库中。下面给出:为什么在静态函数上显示致命错误

<?php 

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

?> 

但浏览器提供以下致命的错误..

Fatal error: Constructor pay::pay() cannot be static in F:\xampp\htdocs\new\sts\class.php on line 41

我感到困惑的是,为什么错误出现..请帮助我理解。

回答

28

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

9

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

1

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

1

一个名称与它所定义的类的名称相同的方法不是一个普通方法,而是一个构造函数,用于为班级创造新的实例。不允许构造函数是静态的,因为它们的全部重点是对新创建的类实例进行操作。

相关问题