Как передать переменные в статический метод? Мне надо передать в метод одну переменную, остальные необходимые для работы у него есть в классе, но он их не видит и говорит Undefined variable про b и c
Как лучше сделать в этом случае? Поместить их внутрь метода прямо? А вдруг они понадобятся в другом методе класса?class MyClass
{
private $b = 1;
private $c = 2;

public static function data($a, $b, $c){
$res = $a + $b + $c;
return $res;
}
}
$res = MyClass::data(25);

21 Авг 2019 в 07:02
206 +1
0
Ответы
1

Если вам необходимо передать только одну переменную в статический метод, а остальные переменные уже есть в классе, можно изменить метод таким образом:

class MyClass
{
private b=1;privateb = 1;
private
b=1;private
c = 2;
public static function data($a){
$instance = new self(); // создаем объект класса
res=res = res=a + $instance->b + $instance->c; // обращаемся к переменным через объект
return $res;
}
}
$res = MyClass::data(25);

Таким образом, вы создаете объект класса внутри статического метода и обращаетесь к переменным b</code>и<code>b</code> и <code>b</code>и<code>c через этот объект.

Если в будущем вам понадобится использовать переменные b</code>и<code>b</code> и <code>b</code>и<code>c в других методах класса, вы можете выбрать другое решение, например, передавать эти переменные в качестве аргументов каждому методу, либо создавать объект класса в контексте, где вам нужны эти переменные.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир