Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP 5.3.2
 
 автор: freeing   (19.04.2010 в 16:36)   письмо автору
 
 

в ранней версии PHP можно было получит доступ к конструктору другого класса через промежуточный объект,
с выходом релиза PHP 5.3.2 это стало не возможно, точнее возможно,
и действие выполняется, однако сопровождается ошибкой!

как быть?


<?php
     
class A
     
{
          
finction __construct()
          {
               
$this->B= new B();
          }
     }

     class 
B
     
{
          
finction __construct()
          {
               
$this->C= new C();
          }
     }

     class 
C
     
{
          
finction __construct()
          {
               print 
"class C true";
          }
     }

     
$A = new A();

     
$A->B->C();
?>


причем в PHP 5.3.2 ChangeLog ничего нет!

  Ответить  
 
 автор: freeing   (19.04.2010 в 17:02)   письмо автору
 
   для: freeing   (19.04.2010 в 16:36)
 

нашел альтернативу )


<?php
class foo
{
    public 
$test;
    
    public function 
test()
    {
        echo 
'give us a '.$this->test."<br>\n";
    }
}

class 
bar
{
    public 
$foo;
    
    public function 
insertFoo($foo)
    {
        
$this->foo $foo;
    }
}

$foo = new foo();
$foo->test 'foo';
$bar = new bar();
$bar->insertFoo($foo);
$foo->test();
$bar->foo->test();
$foo->test 'bar';
$foo->test();
$bar->foo->test();
$bar->foo = clone $foo;
$bar->foo->test 'woop woop';
$foo->test();
$bar->foo->test();

// result:
// give us a foo
// give us a foo
// give us a bar
// give us a bar
// give us a bar
// give us a woop woop
?> 

  Ответить  
 
 автор: neadekvat   (19.04.2010 в 19:01)   письмо автору
 
   для: freeing   (19.04.2010 в 16:36)
 

Какая ошибка?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования