Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试获取非对象的属性。php中的对象在localhost上工作,但在Hostingsite上不工作_Php_Localhost - Fatal编程技术网

正在尝试获取非对象的属性。php中的对象在localhost上工作,但在Hostingsite上不工作

正在尝试获取非对象的属性。php中的对象在localhost上工作,但在Hostingsite上不工作,php,localhost,Php,Localhost,我刚刚将我的CI项目上传到托管站点,但现在,每当脚本访问对象的属性时,它们就不再被识别为对象,因此无法访问和使用该属性。我尝试了打印($someobject),效果很好。它向我显示了所有属性。但是当我尝试打印($someobject->property)时,它就不起作用了。我得到的消息是:正在尝试获取非对象的属性。 我试着把它当作一个数组,但它也不起作用。另外,我不知道这是否有帮助,但数组的索引在上传的版本上也不起作用。 例如,在localhost上,我返回的查询结果只返回一个值:q->resu

我刚刚将我的CI项目上传到托管站点,但现在,每当脚本访问对象的属性时,它们就不再被识别为对象,因此无法访问和使用该属性。
我尝试了
打印($someobject)
,效果很好。它向我显示了所有属性。
但是当我尝试打印($someobject->property)时,它就不起作用了。我得到的消息是:
正在尝试获取非对象的属性。

我试着把它当作一个数组,但它也不起作用。另外,我不知道这是否有帮助,但数组的索引在上传的版本上也不起作用。
例如,在localhost上,我返回的查询结果只返回一个值:
q->result()[0]
。现在这也不起作用,但是如果我取出索引(键)并离开
q->result()
它就起作用了

更新:显然,所有从数据库中检索到值的对象都可以像localhost上的对象一样正常工作,但是当我在托管站点(相同的php版本)上传项目时,对象在第一个位置被包装在一个数组中。还有谁经历过这样的事情吗?或者对可能出现的问题有一个想法


例如,本地主机上的
:$object->property==托管站点上的:$object[0]->property。

检查服务器的php版本。像
fun()[0]
这样的语法只在 php的最新版本。如果存在版本问题,则分配给 变量优先将解决数组的情况。比如:

$temp = $o->fun();
$temp[0];
关于对象属性问题,请执行var_dump($o)和look 在对象的类型上。这应该告诉你出了什么问题

-编辑-

大多数数据库绑定具有不同的获取模式。模式决定 如果数据是作为对象获取的,作为对某些变量的绑定,如 对象数组或数组数组等。这可能值得研究 对于您的特定绑定库,如果存在默认模式,以及 如果该默认值在宿主和本地之间可能有所不同。检查文档
然后比较本地和主机上的php ini文件。

尝试发布代码示例您应该提供从print\r($someobject)获得的响应wamp和主机的php版本存在差异,但在“var\u dump($obj)”之后,仍然不清楚我为什么会出现此问题。返回:'array(1){[0]=>object(stdClass)#25(14){[“id”]=>string(1)“4”[“name”]=>string(43)“Brisbane Int”[“size”]=>string(2)“32”[“year”]=>string(4)”2014”[“score”=>NULL[“city”]=>string(8)“Brisbane”}所以当我尝试回显或打印“$obj->id”或其他属性时,我应该得到它,你会说吗?相反,我得到了非对象错误的trying to get属性。输出告诉您,
$obj
是一个长度为1的数组,第一个(也是唯一一个)元素是一个具有属性id、名称、大小。。。等等。所以你应该能够像
$obj[0]->id那样访问它
是的,我也这样解释它。但我并不打算修改我所有的代码(这将花费大量的时间和精力)。我一直在寻找一种解决方案,使相同的代码在本地主机和托管站点上都能相同地工作。我该怎么做呢?好吧,你必须弄清楚为什么变量被包装在宿主站点的数组中,而不是本地。您必须向后搜索,直到找到值开始不同的位置。根据给定的信息,不容易猜出这可能是在哪里或为什么。。。