构造函数在PHP中重载

前端之家收集整理的这篇文章主要介绍了构造函数在PHP中重载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题Approch

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

  1. <?PHP
  2. /*
  3. Users Abstract Class
  4.  
  5. */
  6. abstract class User
  7. {
  8.  
  9. protected $user_email;
  10. protected $user_username;
  11. protected $user_password;
  12. protected $registred_date;
  13.  
  14.  
  15. //Default constructor
  16. function User()
  17. {
  18.  
  19. }
  20.  
  21. //overloded constructor
  22. function User($input_username,$input_email,$input_password)
  23. {
  24. __set($this->user_username,$input_username);
  25. __set($this->user_email,$user_password);
  26. __set($this->user_password,$input_password);
  27. }
  28.  
  29. }
  30.  
  31.  
  32. ?>

问题细节

上面的代码提供了一个错误错误:致命错误:无法重新声明User :: User()

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

附加信息

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

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

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

  1. public function __construct(/* args */)
  2. {
  3. // constructor code
  4. }

猜你在找的PHP相关文章