@dmytrotus

Как передать переменную PHP между public function?

public function firstFunc(){
    $variable = 25;
}


public function secondFunc(){
        $sum = 2 * $variable; 
       return echo $sum;
}

Помогите пожалуйста..
  • Вопрос задан
  • 994 просмотра
Решения вопроса 1
Konata69lol
@Konata69lol
backend php laravel
Аргументом.

public function firstFunc(){
    return $variable = 25;
}

public function secondFunc($variable){
        $sum = 2 * $variable; 
       return $sum;
}

// в другом методе:
$var = $this->secondFunc($this->firstFunc());
// снаружи класса:
$var = $obj->secondFunc($obj->firstFunc());


Еще можно вызвать метод в другом методе (пример привели)
Еще можно через поле объекта передать (пример привели)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
gzhegow
@gzhegow
Думал, стану умнее, когда адаптируюсь, но нет
Ни в коем случае не аргументом.
Класс - это холодильник.
Каждый метод-полка имеет доступ к $this - дверьке этого холодильника.

Ты пишешь классы с единственной целью - уменьшить количество аргументов, а не внутри класса заниматься передачей аргументов.

У класса есть свойства. Положи туда, возьми оттуда.

В этих свойствах можно что хочешь положить - хоть другой объект, хоть текст, хоть массив допустимых вариантов

Блин, представь что ты работаешь с массивом, только изнутри. Можно положить в соседнюю ячейку, потом взять из нее. Если она тебе нужна чистой - снеси. Или сделай имя ячейки такое, что больше нигде не пригодится и можешь не сносить. В связи с тем что свойство не-статическое, данные из него будут удалены когда ты удалишь сам обьект-ящик.

А удалится он при выходе из функции/файла где он был создан (разумеется если там сверху не навешен ящик, который создает объекты автоматически)

Другой вопрос, что негласной договоренностью и болью решено было В КОНСТРУКТОРЕ заполнять все свойства из приходящих данных (то бишь если классу нужны данные из бд - в конструкторе идем в базу, забираем необходимый минимум), а методы использовать для наполнения холодильника продуктами снаружи - так сказать ты предоставляешь кнопки через которые в холодильник другой программист может чего-нибудь накидать. Если холодильник изнутри наполняет себя чем-то сам, то вероятно это можно сделать иначе.
Ответ написан
@dmytrotus Автор вопроса
Спасибо большое за помощь, разобрался.
В контроллере Laravel сделал так

public function firstFunc(){
           $variable = 25
           return view('myview')
           ->with('variable', $variable)
}

public function secondFunc(){
           $variable = $this->firstFunc()->variable;
           return view('anotherview')
           ->with('variable', $variable)
}


Спасибо большое.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 сент. 2019, в 16:51
10000 руб./за проект
16 сент. 2019, в 16:47
25000 руб./за проект
16 сент. 2019, в 16:31
5000 руб./за проект