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()