2010-12-14 6 views
0

Ich habe eine Funktion, die wie folgt aufgerufen:PHP - get Objekt Eltern

foo($object->ID); 

und in der Funktion, die ich brauche irgendwie $object zu wählen, wenn $object->ID als Variable übergeben wird.

function foo($id = NULL){ 
    if($id != NULL) ... // here I want to get $object 
    else ... 
} 

Wie kann ich das tun?

Antwort

1

Wenn ich verstehe, was Sie richtig sind gefragt, warum nur das Objekt nicht passieren selbst durch ref?

function foo(&$obj) 
{ 
    if($obj != NULL && $obj->ID != NULL) 
    { 
     // ...process your stuff 
    } 
} 

Mein PHP ist ziemlich rostig, aber ich bin mir ziemlich sicher, das ist, wie Sie durch ref passieren ...

+1

Pass-by-Ref ist in diesem Fall nicht relevant. –

+0

Ich sollte klarstellen: Sie möchten sicherstellen, dass Sie das Objekt als Referenz übergeben, damit Sie keine komplett neue Kopie davon erstellen. –

+0

gut der Grund ist ziemlich dumm :) Ich habe eine Reihe von Funktionen, die alle außer diesem die $ -Objekt-> ID als Argument nehmen. Und es sieht hässlich aus, wenn nur dieses nicht :) – Alex

5

Das ist nicht möglich. Sie geben eine Nummer ohne Angabe von deren Herkunft weiter. Tun Sie dies

foo($object) 

function foo($object){ 
    if($object->ID !== null) ... // work with $object 
    else ... // work with ID 

} 
2

Sie müssen das Objekt als ein Argument anstelle der ID übergeben.

+0

Sie sollten nur das Objekt in, übergeben und von diesem Objekt-ID erhalten, nicht einen anderen Parameter hinzuzufügen. – Josh

4

warum nicht:

foo($object); 

und

function foo($localObject){ 
    if(isset($localObject->id)){ 
    } 
}