构造函数在PHP中重载

Sud*_*ha 9 php oop overloading

问题Approch

我有一个这样的类,有一个重载的构造函数

<?php 
/*
  Users Abstract Class

*/
abstract class User 
{

    protected $user_email;
    protected $user_username;
    protected $user_password;
    protected $registred_date;


    //Default constructor
    function User()
    {

    }

    //overloded constructor
    function User($input_username,$input_email,$input_password)
    {
    __set($this->user_username,$input_username);
    __set($this->user_email,$user_password);
    __set($this->user_password,$input_password);
    }

}


?>
Run Code Online (Sandbox Code Playgroud)

问题细节

以上代码提供错误: error:Fatal error: Cannot redeclare User::User()

正如其他语言如C++和Java使用上述方法来重载构造函数如何在PHP OOP中执行它?

附加信息

在LAMP*中使用*PHP 5.3.2,在这个版本中应完全支持OOP概念

Maj*_*ons 12

PHP没有重载.它有一系列神奇的方法,在手册中被描述为重载(参见:http://php.net/manual/en/language.oop5.overloading.php),但它并不是你想到的.

另外,在PHP 5+中编写构造函数的正确方法是使用__construct方法:

public function __construct(/* args */)
{
    // constructor code
}
Run Code Online (Sandbox Code Playgroud)