2011-10-03 53 views
1

我想我的$ _ POST数据发送到一个类矿井进行处理的...但它似乎并没有不管我如何发送,PHP是告诉我:

试图获取属性非对象的

类方法:

public function test_me_out($postdata) { 

    if(isset($postdata->price)) { 

     return "the price was: " . $postdata->price . " …and this was added."; 

    } else { 

     return "it's apparently not set..."; 

    } 

} 
+0

在我看来,发布数据不是一个对象,但即使我创建了一个数组,并尝试以这种方式访问​​它,结果也是如此。 – dcolumbus

+0

试试'test_me_out((object)$ _ POST);'。 – hakre

回答

2

$_POST不是一个对象。你应该像使用$_POST['my_data']那样使用它来访问它的信息。

+0

这并不意味着我应该可以像我一样在我的课程中访问它:'$ postdata ['price']'? – dcolumbus

+0

为什么这样的作品。感谢Safari浏览器缓存。 – dcolumbus

+0

是的,确切地说。 '' – Manhim

0

你是怎么打电话给test_me_out的?喜欢这个?

test_me_out($_POST) 

$ _POST是一个数组,而不是一个对象。因此,你可以访问的变量在函数像这样:

$postdata['price'] 
2

,您仍然可以做

$postData = new ArrayObject($_POST,ArrayObject::ARRAY_AS_PROPS); 

然后为预计$postData->price会工作。