gpt4 book ai didi

php - PHP 中的构造函数重载

转载 作者:可可西里 更新时间:2023-10-31 23:07:37 24 4
gpt4 key购买 nike

问题处理

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

代码

<?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);
}

}


?>

问题详情

上面的代码提供了一个错误:error:Fatal error: Cannot redeclare 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 方法:

public function __construct(/* args */)
{
// constructor code
}

关于php - PHP 中的构造函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com