StaDi
@StaDi
Курьер в it отделе

Область видимости, как передать значение из класса в функцию?

Привет! Очень нубский вопрос.

Есть классы, там значения.
Есть функция в которой хотелось бы воспользоваться этим значением.

Как из функции достучатся до значения?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 3
nazarpc
@nazarpc
Open Source enthusiast
Что значит "там"?
Вообще судя по всему, вам нужно:
1) статическое публичное свойство класса
2) или публичное свойство, но это уже должен быть объект, а не просто класс
3) или метод доступа, тогда 1) или 2) только с защищенным или приватным свойством

Варианты в порядке от менее к более предпочтительному
Ответ написан
Ridzhi
@Ridzhi
На вершине пищевой цепочки
Если хотите протектед и не писать методы доступа как вам разумно предложили выше можете извратиться с таким вариантом:
class A {
   protected $a = 'a';
   protected $b = 'b';
}

$getAbs = function($name) {
   return $this->$name;
};

$visitorA = Closure::bind($getAbs, new A(), 'A');
echo $visitorA('b'); // print b
Ответ написан
CodeByZen
@CodeByZen
php, js, my/mssql, sqlite, html, css, it-consult
Либо использовать "зло" параметр global
например

class foo {
    public $a = 'bar';
}

$fooClass = new foo();

function myFunc(){
    global $fooClass;
    echo $fooClass->bar;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы