【发布时间】:2020-08-05 15:40:34
【问题描述】:
如何在 php 中将对象转换为数组?例如,这里我想将 $result 变量转换为数组。代码如下:
$statement = $adapter->createStatement('SELECT * FROM `users`');
$result = $statement->execute();
$result = new JsonModel($result);
$result = array($result);
var_dump($result);
return ($result);
```
It produces the following output.
array(1) { [0]=> object(Laminas\View\Model\JsonModel)#160 (8) { ["captureTo":protected]=> NULL ["jsonpCallback":protected]=> NULL ["terminate":protected]=> bool(true) ["children":protected]=> array(0) { } ["options":protected]=> array(0) { } ["template":protected]=> string(0) "" ["variables":protected]=> array(4) { [0]=> array(3) { ["id"]=> string(1) "1" ["name"]=> string(13) "J. K. Rowling" ["deleted"]=> string(1) "0" } [1]=> array(3) { ["id"]=> string(1) "2" ["name"]=> string(19) "George R. R. Martin" ["deleted"]=> string(1) "0" } [2]=> array(3) { ["id"]=> string(1) "3" ["name"]=> string(16) "J. R. R. Tolkien" ["deleted"]=> string(1) "0" } [3]=> array(3) { ["id"]=> string(1) "4" ["name"]=> string(12) "Donald Trump" ["deleted"]=> string(1) "0" } } ["append":protected]=> bool(false) } }
【问题讨论】:
-
$result = (array)$result;甚至$result = (array)new JsonModel($data); -
@AbraCadaver 他说他试过了。
-
如果类型转换不起作用,则该类可能具有私有属性和访问器方法来提取它们。您需要编写自定义代码,使用这些方法获取所需的所有属性,并将它们放入数组中。对此没有一般的答案。
-
@Barmar 他们做得不好。或者更好的问题是 it doesn't work 是什么意思。
-
显示使用类型转换的代码,并显示结果的
var_dump()。