【发布时间】:2013-11-05 19:45:38
【问题描述】:
我想在 Yii 框架模型中重载两个方法。
在这里,我想说的是,就像在 Java 中一样,我们有方法重载的概念,这意味着方法具有相同的名称,但传递给该方法的参数数量不同。所以这些类似的概念可以应用在 PHP Yii 框架的模型类中。 在 Yii 模型类中,我想创建两个方法,例如,
public function test(){
//method logic
}
public function test(int parameters){
//method logic
}
可以这样创作吗?我收到类似“无法定义相同功能”的错误。
【问题讨论】:
-
PHP 不支持方法重载。我假设您的意思有所不同,但不清楚您想要实现什么。
-
您可以使用代码来检测传递给您的方法的数据类型(或使用默认值来表示无参数),例如。
is_array、is_object等并提供正确的输出类型。这是我所知道的最接近 php 中方法重载的方法 -
我认为您所说的不完全是方法重载,而是方法覆盖。因此,请让我们知道您的确切要求,或者以您认为想要的方式至少提供一些示例代码。当然,如果需要,我们可以帮助您更正它。
-
@bool.dev:很好的区别。当其他 PHPer 告诉我他们正在重载一个方法时,我踢了一只小狗。