2010-12-14 71 views
0

我有一個名爲像這樣的功能:PHP - 獲得對象的父

foo($object->ID); 

,並在功能我需要以某種方式選擇$object如果$object->ID作爲一個變量傳遞。

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

我該怎麼做?

回答

1

如果我理解你的要求正確,爲什麼不乾脆由參傳遞對象本身?

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

我的PHP的相當生疏,但我相當肯定這就是你擦肩而過......參考

+1

傳遞參考在這種情況下不相關。 – 2010-12-14 22:45:37

+0

我應該澄清一點:您要確保您通過引用傳遞對象,以便您不需要創建它的全新副本。 – 2010-12-14 22:45:57

+0

那麼原因很愚蠢:)我有一套函數,除了這個函數之外,'$ object-> id'作爲參數。它看起來很醜,如果只是這一個沒有:) – Alex 2010-12-14 22:46:15

5

這是不可能的。您傳遞的號碼沒有任何關於其來源的信息。是否這樣做

foo($object) 

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

} 
2

您需要將參數作爲參數傳遞,而不是ID。

+0

你應該只傳遞對象,並從該對象獲取ID,不添加其他參數。 – Josh 2010-12-14 22:44:47

4

爲什麼不:

foo($object); 

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