Вызов класса в классе видимость объектов

pll

Новичок
Вызов класса в классе видимость объектов

Вызов класса в классе видимость массива объектов

есть базовый класс в котором мы инциализируем все объекты и складываем их в массив obj
PHP:
....
    $this->obj  =& $this->InitCore();
    $this->sel = new Selector();
    $this->sel->Start();
....
и есть класс Selector

PHP:
class Selector {
  var $sys;
  var $cfg;
  var $obj;
...
  function Start()
  {
     global $sys, $cfg, $obj;
     $sys->obj[errLog]->error_log('103') // не работает
если вынести создание объекта Selector за пределы базового класа то все отлично работает, а внути не хочет .... почему ?
в чем я ошибся.

тоже самое отлично работает для всех объектов внутри $sys->obj
 

texrdcom

Новичок
ты путаеш работу с атрибутами класса и глобальными переменными! приведи весь код что бы не вызывать телепатов :)
 

pll

Новичок
Весь код это очень много... проблема в том что у меня пустой $obj внутри class Selector ...

если же вызвать их друг за другом например так

$sys = & new CoreSys(); // базовый класс
$sel = new Selector();
$sel->Start();

то все работает $obj содержит массив объектов
 

svetasmirnova

маленький монстрик
Вот это в конструкторе что ли?
PHP:
....
    $this->obj  =& $this->InitCore();
    $this->sel = new Selector();
    $this->sel->Start();
....
-~{}~ 26.01.06 02:46:

В ирке выяснили, что в самом деле конструктор.
Он недосоздан на момент вызова метода Start() объекта Selector
Можно попробовать так (не тестировала):
PHP:
class CoreSys {
function CoreSys() {
    $this->obj  =& $this->InitCore();
    $this->sel = new Selector();
    $this->sel->Start($this); 
}
...
}

class  Selector {
  var $sys;
  var $cfg;
  var $obj;
...
  function Start($sys)
  {
     global $cfg, $obj;
     $sys->obj[errLog]->error_log('103')
 

texrdcom

Новичок
pll
$sys->obj и global $obj ------ Разные вещи ты это понимаеш ?
Длинный код пиши короткий тестовый именно для этой проблемы во время написания сам может допреш а если нет то помогут ! а телепаты видиш в отпуске !
 

pll

Новичок
хорошо напишу тестовый пример проблемы... хотя выше изложеннго на мой взгляд вполне достаточно
 

pll

Новичок
Спасибо... буду искать дальше ошибку.

-~{}~ 26.01.06 15:56:

PHP:
class CoreSys { 
function CoreSys() { 
    $this->obj =& $this->InitCore(); 
    $this->sel = new Selector($this); 
    $this->sel->Start(); 
}
...
class Selector { 
  var $sys; 
  var $cfg; 
  var $obj; 
  function Selector(&$sys)
  {
    $this->sys =& $sys;
    ...
  }
  ...
  function Start() 
  { 
     global $sys, $cfg, $obj; 
     $this->sys->obj[errLog]->error_log('103');
так тоже ни чего не работает -(
 
Сверху