Mailinglisten-Archive |
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