Получить значение переменной функции из функции

iskiz

Новичок
Здравствуйте. Подскажите, возможно ли получить значение переменной одной функции из другой?

Например в таком коде:

PHP:
class nameclass {
function first() {
		$test = 123;
}
function second() {
		$perem = // вот тут мне нужно получить значение переменной "$test", которое равно "123" из первой функции
}
}
Возможно ли это? И как это сделать? Спасибо.
 

С.

Продвинутый новичок
PHP:
class nameclass {
  var $test;
  function first() {
        $this->test = 123;
  }
  function second() {
        $perem = $this->test;
  }
}
 

Redjik

Джедай-мастер
iskiz
ты про return знаешь?
Внимание! Не стеб, я когда начинал, немного пробуксовывал с этим.
 

antson

Новичок
Партнер клуба
iskiz
Ваше желание идет в разрез с идеологией заложенной в самом понятии функции или класса.

функция в программировании — отдельная система (подсистема, подпрограмма), на вход которой поступают управляющие воздействия в виде значений аргументов. На выходе функция возвращает результат, который может быть как скалярной величиной, так и векторным значением (структура, индексный массив и т.п.). По ходу выполнения функции могут выполняться, также, некоторые изменения в управляемой системе, причём как обратимые, так и необратимые.

Из этого следует что функцию следует рассматривать как черный ящик с документированными входами и выходами.
Взаимодействие напрямую следует избегать, хотя и существует понятие глобальных переменных, использование их должно быть оправданным.
вот тут можно почитать http://www.gunsmoker.ru/2011/04/blog-post.html .
Давным-давно в программах не было подпрограмм, а все переменные были, очевидным образом, глобальными. Позднее в языках программирования начали появляться средства структурирования кода, и среди них - подпрограммы. Но в них пока нельзя было объявлять переменных. Поэтому все переменные всё ещё были глобальными. И лишь потом, наконец, появились локальные переменные, а глобальные переменные стали подвергаться преследованию.
Почему можно найти по ссылке выше.

В классе может потребоваться внутренние переменные используемые внутри экземпляра
Н-р какая то из настроек инициализируемая в конструкторе и используемая потом.

Код:
class nameclass {
 public varname1;
 private varname2;
в этом случае до них можно обратиться внутри методов класса как
Код:
$this->varname1 =  $this->varname2;
Доступ снаружи задается областью видимости public или private.
$o = new nameclass();
$o->varname1 = 'blabla';
А вот приватную снаружи изменить нельзя.
Если такое требуется нужно создать методы SetVarname2() , GetVarname2()
 

WMix

герр M:)ller
Партнер клуба
ну или
PHP:
 global $test
да, грязно, правильно естессно через аттрибут, если уж ты в классе, но как альтернатива,...
 
Сверху