Hej!
Eftersom att jag inte kan testa mina PHP-dokument utan att starta upp burken i Linux, så tar jag mig friheten att fråga om någon här skulle vilja testa en liten sak åt mig - eller kanske rentutav vet svaret på min undran.
Jag skriver för tillfället ett system som jag bygger upp med fasligt många klasser - och för att känna av typen av klasserna i mina funktioner använder jag mig av en funktion som jag kallar is_instance_of (). Vad jag skulle vilja veta är om man kan kontrollera en instans som skickats by-reference till en funktion plus till min funktion. Jag tycker ju att det borde gå, eftersom att den pekar mot den verkligen instansen - men jag är inte säker.
Om någon kan svara på frågan, eller rentutav testa koden nedan skulle jag bli väldans glad!
<?php
function is_instance_of ( &$anInstance, $aClass ) {
return ( ( strtolower ( get_class ( $anInstance ) ) == strtolower ( $aClass ) ) || is_subclass_of ( $anInstance, strtolower ( $aClass ) ) );
}
class TestKlassEtt {
var $_testVariabel;
function TestKlassEtt ( $variabel ) {
$this->_testVariabel = $variabel;
}
}
class TestKlassTva {
function TestFunktionEtt ( $instans ) {
if ( is_instance_of ( $instans, "TestKlassEtt" ) ) {
echo "\$instans är en instans av TestKlassEtt<br/>";
}
else {
echo "\$instans är INTE en instans av TestKlassEtt<br/>";
}
}
function TestFunktionTva ( &$instans ) {
if ( is_instance_of ( $instans, "TestKlassEtt" ) ) {
echo "&\$instans är en instans av TestKlassEtt<br/>";
}
else {
echo "&\$instans är INTE en instans av TestKlassEtt<br/>";
}
}
}
$klassEtt = new TestKlassEtt ( "SPiN!" );
$klassTva = new TestKlassTva ();
$klassTva->TestFunktionEtt ( $klassEtt );
$klassTva->TestFunktionTva ( $klassEtt );
?>