我正在将API集成到我的网站,该网站使用存储在对象中的数据,而我的代码是使用数组编写的.
我想要一个快速而又脏的函数将对象转换为数组.
我有这个类的问题,特别是最后2个函数callApi($query)和objectToArray($d).这些目标是从Amazon API返回的对象返回一个数组.
我认为问题在于从另一个函数调用一个函数:
$arrayResponse=$this->objectToArray($response);
Run Code Online (Sandbox Code Playgroud)
即使我在var_dump时这样做,我$arrayResponse仍然将它作为一个对象,并且不能执行特定于数组的操作(呃!;)).我objectToArray()在这个网站和亚马逊图书馆找到了.
当我单独测试它时它工作正常但在将它放入项目后我仍然得到了对象.
是我只是以错误的方式调用函数,所以它不转换它?
先感谢您,
亚当
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', …Run Code Online (Sandbox Code Playgroud) 我想知道PHP 中是否有将多维对象转换为数组的内置方法?
问题是在对象上应用常规铸造时,只有第一个维度受到影响,所有其他维度都提醒相同。
注意:我只对铸造感兴趣!
例子:
$a = new stdClass();
$a->b = 'qwe';
$a->c = new stdClass();
$a->c->d = 'asd';
var_dump((array)$a); // echoes:
array(2) {
["b"]=>
string(3) "qwe"
["c"]=>
object(stdClass)#2 (1) {
["d"]=>
string(3) "asd"
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,只有第一维受到影响,那么如何投射多维对象呢?