如何解决有没有一种方法可以将对象属性分配给数组?
| 我很确定有办法做到这一点,但是到目前为止我没有尝试过 考虑到我们有一个带有某些属性的对象$ localDB,我一直在寻找一种干净的方法来构建$ connexionInfo数组,而无需转换$ localDB或使用foreach循环。// This would be too easy if it worked
$connexionInfo = array( \"UID\" => $localDB->uid,\"PWD\" => $localDB->pwd,\"Database\" => $localDB->DB
);
// tried using {} a few different ways,also does not seem to work
$connexionInfo = array( \"UID\" => {$localDB->uid},\"PWD\" => {$localDB->pwd},\"Database\"=> {$localDB->DB}
);
我很确定有一种干净的方法可以做到这一点。任何人?
更新时间:
//与我在上面发布的内容相反...这确实可以实现预期的功能!
$connectionInfo = array(\"UID\" => $localDB->uid,\"PWD\" =>$localDB->pwd,\"Database\"=> $localDB->DB);
解决方法
使用这个功能
function objectToArray($object)
{
$array=array();
foreach($object as $member=>$data)
{
$array[$member]=$data;
}
return $array;
}
您可以尝试将PHP 5对象类型转换为数组。
$array = (array) $localDB;
没有强制转换或foreach,请参阅手册
get_object_vars
,根据对象内的级别,您可以执行
$array = (array) $object;
如果要在数组中使用数组,则必须使用某种递归
(我认为,这就是我所需要的,所以我没有对我的案子做任何进一步的测试)
但是看起来这将是您想要的更干净的版本
,如最初问题下的注释中所述,这是如何将obj属性分配给数组值的方法:
$connectionInfo = array(\"UID\" => $localDB->uid,\"PWD\" =>$localDB->pwd,\"Database\"=> $localDB->DB);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。