Как передать переменную в несколько функций

#php #class #oop #variables

#php #класс #ооп #переменные

Вопрос:

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

Раньше я заставлял Бена повторять эту процедуру в нескольких классах, но теперь я хотел бы объединить эти несколько классов в один класс и выполнить только одну функцию, передав переменную в эту функцию, чтобы определить возвращаемый результат.

Я знаю, как передать переменную в «одну» функцию, но как я могу передать переменную ($ this_id) в мои несколько функций ниже? В принципе, независимо от того, что $this_id из get_output($this_id); Я хочу, чтобы то же значение переменной было перенесено в другие функции $ this_id . Смотрите скриншот…

Я искал в Интернете, и все ответы, которые я видел, показывают, как сделать это нестатическим способом, но на самом деле я знаком только с вызовом вещей статически. Я попробовал способ obj, но не смог заставить его работать.

Пример, выполнение…

 $header = 'CustomTheme_output';
$header::get_output('header');
  

(пожалуйста, не обращайте внимания на любой потерянный код, код — это то, что я до сих пор не пробовал несколькими способами. private $id и __construct взяты из онлайн-решений, которые я пробовал)

Не могли бы вы подсказать мне, как я могу правильно этого добиться? Я был бы ооочень рад избавиться от всего повторяющегося кода, папок и файлов, которые у меня есть! — Спасибо!

введите описание изображения здесь

Комментарии:

1. никогда не публикуйте скриншот. скопируйте и вставьте код, чтобы нам не нужно было его вводить.

2. Я этого не сделал, потому что мой код длиннее любого кода, который я видел в сообщении SO. Это будет где-то около 1500 строк кода. Я чувствую, что уловил суть того, что я говорю, и мне нужно добиться того, чтобы другой разработчик мог понять без необходимости читать код, который на самом деле не имеет ничего общего с моей реальной целью / вопросом. Я пришел к выводу (я думаю, это разумно), что весь код не нужен, чтобы сказать мне, как ответить на это, и я думаю, что я могу согласиться с этим, потому что, если бы я знал, как и кто-то другой опубликовал то же самое, я мог бы легко ответить на них. Если вы считаете, что мой вопрос следует сформулировать лучше, дайте мне знать.

3. Просто заглядываю тоже. Я не знал, что разработчики на самом деле печатают код. Извините, я пропустил это в своем первом ответе. Спасибо, что упомянули об этом. Подойдет. Спасибо!

Ответ №1:

Либо вы передаете ее непосредственно в каждый вызов метода:

 public function foo($this_id) {
     $this->bar($this_id);
}
  

Или вы делаете это атрибутом класса и просто ПОЛУЧАЕТЕ к нему ДОСТУП из различных методов:

 public function foo($this_id) {
    $this->id = $this_id;
    $this->bar();
}

public function bar() {
   do_something($this->id);
}
  

Комментарии:

1. Спасибо. Так что этот нестатический способ меня немного смущает, потому что я новичок в этом, я полагаю. Не могли бы вы привести пример с функцией из моего скриншота, чтобы я мог лучше понять? Похоже, вы говорите, что для каждой из моих выходных функций я должен запускать общедоступную функцию UniqueName_output($this_id) { $this->get_output($ this_id) Затем мой код … } ?