23.03.2023 07:49:43 am
Привет!
Допустим есть такой метод:
Как можно получить из него переменную
Заранее спасибо.
Допустим есть такой метод:
	public function funA() {
		foreach ($this->val as $val) {
			$this->funB($val)
		}
		return $this->val;
	}Как можно получить из него переменную
$this->val, не выполняя код:
		foreach ($this->val as $val) {
			$this->funB($val)
		}Заранее спасибо.
- Жалоба
 
23.03.2023 04:41:20 pm
Если получить переменную надо в этом же классе, что находится метод, то так она и получается: 
Если надо получать переменную с другого класса, то можно дописать функцию:
И получать переменную так:
$this->val.Если надо получать переменную с другого класса, то можно дописать функцию:
	public function getVal() {
		return $this->val;
	}И получать переменную так:
$class->getVal(). Важно: функция должна быть public.
23.03.2023 06:05:54 pm
Можно за счет наследие классов (
Пример:
extends): https://www.php.net/ ... inheritance.php:		Наследование — это хорошо зарекомендовавший себя принцип программирования, и PHP использует этот принцип в своей объектной модели. Этот принцип повлияет на то, как многие классы и объекты связаны друг с другом.
Например, при расширении класса дочерний класс наследует все общедоступные и защищённые методы, свойства и константы родительского класса. До тех пор пока эти методы не будут переопределены, они будут сохранять свою исходную функциональность.
Это полезно для определения и абстрагирования функциональности и позволяет реализовать дополнительную функциональность в похожих объектах без необходимости реализовывать всю общую функциональность.
Например, при расширении класса дочерний класс наследует все общедоступные и защищённые методы, свойства и константы родительского класса. До тех пор пока эти методы не будут переопределены, они будут сохранять свою исходную функциональность.
Это полезно для определения и абстрагирования функциональности и позволяет реализовать дополнительную функциональность в похожих объектах без необходимости реализовывать всю общую функциональность.
Пример:
class A {
	public $val = 'val';
}
class B extends A {
	function __construct() {
		echo $this->val;
	}
}
23.03.2023 07:34:26 pm
Как вариант: добавить необязательный параметр (
Если надо получить переменную и выполнить весь код метода:
Если надо получить только переменную, не выполняя весь код метода:
$onlyVal), который по умолчанию будет false. При запуске метода, с параметром true, метод будет возвращать свойство, без выполнения кода:	public function funA($onlyVal = false) {
		if ($onlyVal) {
			return $this->val;
		}
		foreach ($this->val as $val) {
			$this->funB($val)
		}
		return $this->val;
	}Если надо получить переменную и выполнить весь код метода:
$val = $className->funA();Если надо получить только переменную, не выполняя весь код метода:
$val = $className->funA(true);


