Scope Resolution Operator (::)

ardentlyo

Новичок
Scope Resolution Operator :):)

естьт класс
class A
{
var $var = array();
function func() { .. }

}

далее извне класса, не создавая объекта хочу работать с этим массивом, но чет не получается. к функции обращаюсь так: A::func() - и все работает, но к массиву так не получается. Как правильно?

и еще, я таким образом пытаюсь сделать глобальный массив переменных и значений, который будет доступен с любого места сценария... что б не возится с глобалс[]. но может кто подскажет более изящное решение?
 

ardentlyo

Новичок
dimagolov
ну по идее статик для обьектов, а не для классов... но все же мне для 4го надо
 

ardentlyo

Новичок
cDLEON
он ток для 5го

-~{}~ 24.01.08 02:04:

доехало до меня, к переменным обращаться нельзя - это же класс, а не объект... но как тогда сделать "вседоступный" массив!??
 

ardentlyo

Новичок
zerkms
а это идея!!! создаем объект какото класса с массивом, пише второй класс с методом, котрый возвращает заданный элемент массива. Вуаля - функция доступна из любого места сценария... хоят может немного "мудрено" это все, должна же быть более красивая реализация

-~{}~ 24.01.08 02:18:

cDLEON
в мане смотрел, для 4го нету....
 

cDLEON

Онанист РНРСlub
ardentlyo
PHP:
class blablabla {
 var $var = "гавгавгав";
 function &instance() {
  static $obj;
  if(!isset($obj)) {
   $obj=new blablabla();
  }
  return $obj;
 }
}
print_r(blablabla::instance());
$obj=&blablabla::instance();
$obj->var="кукарику";
print_r(blablabla::instance());
 

cDLEON

Онанист РНРСlub
ardentlyo
Блин. Пишите на ИНТАЛе. Или бэйсике.
А лучше сменитe профессию.
Ну или, как вариант, пишите процедурами.
Потому что в классах у вас сплошные провалы. Раз в этом простейшем коде разобраться не можете.
 

ardentlyo

Новичок
cDLEON
оу... погоди! это форум для того чтоб когото погрузить чтоли? есть конкретный вопрос - если можете ответьте на него, а нет - так не нужно мне это все высказывать.
И если бы в классах небыло провалов - то я бы сейчас этот вопрос не задавал!!! не находите?

ну я понимаю что есть функция, которая сохраняет обьект obj от вызова к вызову. Возвращает ссылку на объект. Но как это мне может помочь?
если я создаю класс:
class A
{
function &instance() {..}
}
(если вы это имели ввиду)
ну и что мне даст A::instance() ? мне нужно записывать и читать данные из массива

-~{}~ 24.01.08 02:52:

то есть есть метод set($varname, $value) и get($varname), но что б их можно было вызвать как A::set... но где сохранять значния массива? вот в чем вопрос
 

FractalizeR

Новичок
A::instance() вернет вам переменную, модификация которой будет автоматически приводить к модификации массива внутри той функции.
Почитайте PHP Manual раздел Returning references. И обратите внимание на амперсанд перед именем функции instance
 
Сверху