【发布时间】:2011-02-24 18:57:04
【问题描述】:
我发现自己在使用 couchDB 和 Ajax 的 PHP 应用程序中一直在数组和对象之间进行转换。当然,我也将对象转换为 JSON 并返回(有时用于 couchdb,但主要用于 Ajax),但这并没有太大干扰我的工作流程。
目前我有我使用的 CouchDB 模块返回的 php 对象,另一方面,我有返回数组的旧习惯,如 array("error"=>"not found","data"=> $dataObj) 来自我的函数。这会导致真正的 php 对象和嵌套数组混合出现,如果需要,我会使用 (object) 或 (array) 进行转换。最糟糕的是,我或多或少地知道函数返回什么,但不知道是什么类型(数组或对象),所以经常遇到类型错误。
我现在的计划是在从函数返回之前始终将数组转换为对象。当然,这意味着大量的重构。
这是正确的方法吗?转换开销呢?其他想法或提示?
编辑: Kenaniah 的回答建议我应该走另一条路,这意味着我会将所有内容都转换为数组。对于所有 Ajax / JSON 的东西以及 CouchDB,我会使用
$myarray = json_decode($json_data,$assoc = true); //EDIT: changed to true, whcih is what I really meant
更改所有 CouchDB 和 Ajax 函数需要做更多工作,但最后我有更好的代码。
【问题讨论】:
-
是否可以以数组格式而不是对象格式返回您的 CouchDB 数据?结果对象实例化真的有必要吗?
-
是的,我会这样做,但这需要大量重构。
标签: php ajax json couchdb type-conversion