ob_start, classes

Мутник

Новичок
ob_start, classes

ob_start (array ("class", 'display')); такая штука значит class::display();

а как сделать так, чтобы было что то типа $class->display(); ??

т.е. я в ДИСПЛЕЕ хочу еще различне уже подгруженные классы юзать. Подскажите.
 

svetasmirnova

маленький монстрик
Только что попробовала с примером из мануала: всё работает.
 

Мутник

Новичок
странно...

я делаю нечто подобное:

PHP:
ob_start(array($this, "display"));

----

function display($content){
  global $class2;
  return $class2->function2($content);
}


---

class2:
function2($content){
return $content;
}
-~{}~ 30.01.05 02:28:

Можно, конечено, сделать все через ob_get_clean(); но это будет не особо правильно ;(
 

su1d

Старожил PHPClubа
Мутник
а ob_start() вызываешь изнутри класса?
если снаружи, то там ведь $this не определена.

можешь попробовать так:
PHP:
ob_start(array('ClassName', 'method'));
 

svetasmirnova

маленький монстрик
Мутник
Я проделала следующее:
PHP:
<?php

class X {
    
    function test() {
        ob_start(array($this, "display"));
//first test
        ?>
        <html>
        <body>
        <p>It's like comparing apples to oranges.</p>
        </body>
        </html>
        <?php
        ob_end_flush();
//end first test
    }
    
    function display($content){
        global $y;
        return $y->callback($content);
    }
}

class Y {
function callback($buffer) 
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}
}

$x = new X;
$y = new Y;
$x->test();
//second test
        ?>
        <html>
        <body>
        <p>It's like comparing apples to oranges.</p>
        </body>
        </html>
        <?php
        ob_end_flush();
//end second test
?>
Всё работает. И в PHP 4 и в PHP 5

Что-то Вы мутите ;)
 

Мутник

Новичок
ага.. уже намутил ;)

Спасибо за внимание. Топ можно тереть.. Есть классная поговорка: "Дурная голова ногам покою не дает..."
 
Сверху