2012-04-26 3 views
2

Я хочу перегрузить два метода в модели структуры Yii.Перегрузка метода в модели рамки Yii

Здесь я хочу сказать, что, как и в Java, у нас есть метод перегрузки метода, метод метода имеет одно и то же имя, но отличается количеством параметров, передаваемых этому методу. Таким образом, подобная концепция может применяться в классе модели PHP Yii. В Yii классе модели, я хочу создать два метода, как,

public function test(){ 
    //method logic 
} 
public function test(int parameters){ 
    //method logic 
} 

Можно ли создать подобные этим? Я получаю ошибку, как «не могу определить одну и ту же функцию».

+1

PHP не поддерживает перегрузку метода. Я предполагаю, что вы имеете в виду что-то другое, но неясно, чего вы хотите достичь. – KingCrunch

+0

Вы можете использовать код для определения типа данных, переданных вашим методам (или использовать значения по умолчанию для без параметров), например. 'is_array',' is_object' и т. д. и обеспечивают правильный тип вывода. Это самое близкое, что я знаю о перегрузке метода в php –

+3

. Я думаю, что вы говорите, это не совсем метод ** перегрузка **, но это ** метод переопределения **. поэтому дайте нам знать ваше точное требование или, по крайней мере, некоторый образец кода, как вы думаете, вы хотите это сделать. мы можем помочь вам исправить это, если необходимо, конечно. –

ответ

3

Что вы говорите, не поддерживается в PHP. Вы можете попробовать использовать значения по умолчанию в function arguments. Напр.

function foo($int_param = 0) // do something 

Вы также можете использовать func_get_args. Вы определяете свою функцию, чтобы не принимать параметры, а затем получать аргументы с помощью func_get_args().

Эти подходы подходят, если между функциями, которые вы пытаетесь реализовать, нет большой разницы.

Смежные вопросы