2010-08-09 74 views
1

任何人都知道如何將stdClass的值賦給變量?php stdClass:將對象值賦值給變量

我有一個stdClass對象,當我使用var_dump($userdetails->emailaddress)打印它時,它確實將值打印爲字符串(31)「asdas。@ fsdf.com」;

但是當我嘗試將對象的值賦給變量,讓說:

$to = $userdetails->emailaddress; 

$to值成爲NULL ...

任何人都可以幫助嗎?

+1

這應該可以正常工作。例如,嘗試:'php -r'$ x = new stdClass; $ x-> foo =「bar」; $ foo = $ x-> foo; var_dump($ foo);''它會打印「bar」。粘貼你的實際代碼,可能還有其他問題。 – 2010-08-09 10:39:37

+0

這應該工作。你能否提供一個顯示不正確行爲的完整示例?您是否檢查過它不是標識符案例問題(例如$ userDetails而不是$ userdetails)? – 2010-08-09 10:41:02

回答

0

我認爲沒有任何錯誤/防止從stdClass值分配給變量。請檢查代碼的拼寫。

5

這聽起來像你正在做的事情錯了,因爲

$obj = new StdClass; 
$obj->email = '[email protected]'; 
$to = $obj->email; 
var_dump($to); // string(15) "[email protected]" 

注意,變量和對象成員在PHP是區分大小寫的(不像函數和方法),所以

$to = $obj->eMail; 
var_dump($to); // NULL 

然而,這種情況下您還會收到一份PHP通知

Notice: Undefined property: stdClass::$eMail 

這是一個很好的做法e error_reporting(-1)和開發機器上的PHP.ini指令display_errors and display_startup_errors


由於它是一個CW。隨意使用這個空間進行進一步的調試提示

0

是不是公開的var?

如果類是由像:

class Example 
{ 
    public $emailaddress; 

    public function example() 
    { 
     #do something 
    } 

} 

然後,我不明白爲什麼會有一個問題。

+2

這是一個StdClass,因此除公衆之外的任何其他可見性均不適用 – Gordon 2010-08-09 10:42:42

+0

嗯,我從來沒有使用StdClass,所以我只是假設它是一個示例名稱。 我不好*臉紅* – Dorjan 2010-08-09 16:30:02