У меня есть класс, который содержит несколько методов. Итак, я хочу узнать, какой подход лучше?
Прохождение по методам:
class cls {
function method1($var){
echo $var;
}
function method2($var){
echo $var;
}
}
$obj = new cls;
$obj->methodX($var); // X can be 1,2
Прохождение по классу:
class cls {
public $var;
function __construct($var){
$this->var = $var;
}
function method1(){
echo $this->var;
}
function method2(){
echo $this->var;
}
}
$obj = new cls($var);
$obj->methodX(); // X can be 1,2
Примечание. Мне нужно использовать $var
для всех методов. Также на самом деле существует почти 10 методов.
С точки зрения дизайна я бы хотел передать его классу. Он позволяет только передать ваш параметр один раз. Он также удаляет зависимость, которую вы используете в своем аргументе, в каждом методе/функции, в котором вы хотите вызвать метод.
Сравнение производительности между ними не учитывается (ссылка).
$var
предназначено для выражения по отношению к классу. Если это значение, которое каким-то образом описывает объект или является свойством объекта или его поведения, то его следует смоделировать как таковое. Если он не связан с классом или объектом, а является просто параметром времени выполнения или дополнением вывода, то он должен быть предоставлен во время выполнения, где это необходимо.