#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) Затем мой код … } ?