phpbar.de logo

Mailinglisten-Archive

[php] statischer Aufruf aus einer methode

[php] statischer Aufruf aus einer methode

Andreas Heigl a.heigl at wdv.de
Mon Jun 13 15:24:41 CEST 2005


Martin Spuetz schrieb:

> Hallo Sebastian,
> 
> Sebastian Mendel wrote:
>> wenn ich eine Methode statisch aus einem Objekt heraus aufrufe ist $this
>> gesetzt ... wie soll ich denn jetzt überprüfen ob die Methode statisch
>> oder im Objekt aufgerufen wurde?
> 
> dein Beispiel funktioniert doch:
> 
> [mas at mas tmp]$ php -f test.php
> Objekt
> Klasse

Also wenn ich die Datei oopTest.php mittels http://localhost/ooptest.php
aufrufen erhalte ich 'Klasse Klasse'.

[foo at bar webdocroot]$ cat > oopTest.php << "EOF"
<?php
class Klasse
{
    function methode()
    {
        Klasse::stMethode();
    }

    function stMethode()
    {
        $i = debug_backtrace();
        if ( $i[0]['type'] == '->' )
        {
            echo 'Objekt' . "\n";
        }
        else
        {
            echo 'Klasse' . "\n";
        }
    }
}

$objekt = new Klasse();

$objekt->Methode();
Klasse::stMethode();

?>
EOF

Gruß

Andreas
-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de



php::bar PHP Wiki   -   Listenarchive