gpt4 book ai didi

php - 将 stdObject 转换为数组 - 调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:10 25 4
gpt4 key购买 nike

我对这个类有疑问,尤其是最后两个函数 callApi($query)objectToArray($d)。这些的目标是从 Amazon API 返回的对象返回一个数组。

我认为问题在于从这里调用一个函数:

$arrayResponse=$this->objectToArray($response);

即使我在 var_dump $arrayResponse 时这样做,我仍然将它作为对象获取并且无法执行特定于数组的操作(duh!;))。我在 this site 上找到了 objectToArray()Amazon Library .

当我单独测试它时它工作正常,但在将它放入项目后我仍然得到了对象。

是不是我调用函数的方式不对,所以没有转换?

提前谢谢你,

亚当

class Amazon extends Source implements ICallsApi{
function __construct(){
$this->impact = 55;
$this->side = "supply";
echo "<p>I am Amazon</p>";
echo "<p>and my impact = ". $this->impact."</p>";

}

private function FormulateQuery($query){
echo "Formulate query for Amazon API and return it";
}

//Returns the array records from amazon of a given keyword
public function callApi($query)
{
$client = new AmazonECS('dataRemoved', 'dataRemoved', 'co.uk', 'dataRemoved');

$response = $client->category('Books')->search($query);
//var_dump($response);
//echo "<pre>";
//print_r($response);
//echo "</pre>";

$arrayResponse=$this->objectToArray($response);
var_dump($arrayResponse);
//echo "<pre>";
//print_r($arrayResponse);
//echo "</pre>";
echo "code returns an array of results";
// return $arrayResponse;
} //objectToArray($d) found online

public function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$this->d = get_object_vars($d);
}

if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
}

最佳答案

好的,已修复。

供将来引用:

将整个 std 对象转换为数组的工作函数如下所示:

public function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}

if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(array($this, 'objectToArray'), $d);
//$this->d = get_object_vars($d);
}
else {
// Return array
return $d;
}
}

感谢所有贡献者,

亚当

关于php - 将 stdObject 转换为数组 - 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com