2010-08-09 75 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