我有一个对象实例,我从他身上找到了一些方法:
$object->getWebUserInfo($id)
它返回一些典型的数组:
array(29){[“username”] => string(7)“quardas”[“password”] => string(32)“PASS”[“id”] => string(2)“19”[“internalKey”] => string(2)“19”[“name”] => string(0)“”[“fullname”] => string(0)“”[“role”] => string(1)“0”[“email”] => string(17)“quardas@somemail.com”[“phone”] => string(0)“”[“mobilephone”] => string(0)“”[“blocked”] ...... etc
是否可以在一个行代码中获得某个密钥值? (除了保留这个数组的附加值) - 例如
$object->getWebUserInfo($id)->{'username'}
当然上面的说法不起作用
答案 0 :(得分:3)
Dereferencing of arrays from methods and functions。但是,您可以将返回值强制转换为对象并访问对象成员之类的项目:
function getWebUserInfo($id)
{
...
return (object) $array;
}
$obj->getWebUserInfo($id)->username;
答案 1 :(得分:2)
尝试修改“getWebUserInfo”函数并向其传递一个字符串参数,该参数返回与此字符串对应的键。
function getWebUserInfo($id,$key="") {
...;
$array = ...;
if($key != "") {
return $array[$key];
} else {
return $array;
}
};
你可以在“$ key”中传递一个字符串数组来返回多个键,但是你必须再修改一下你的函数。
答案 2 :(得分:2)
您可以为此编写函数或方法:
function getKey($a, $key)
{
return $a[$key];
}
echo getKey(getWebUserInfo(), 'test');
或获取WebUserInfoByKey($ id,'test')
答案 3 :(得分:1)
您无法直接访问返回的数组值,但您必须为此创建临时数组。 LiMuBei你的解决方案也不起作用。
答案 4 :(得分:1)
这不能一步完成,但这样的事情可能有效:
function get_array_key($array, $key) {
return (isset($array[$key])) ? $array[$key] : false;
}
...
get_array_key($object->getWebUserInfo($id), 'username');
答案 5 :(得分:0)
没有测试过,但没有
$object->getWebUserInfo($id)["username"]
工作?如果方法返回一个数组,我认为这应该是可能的。
答案 6 :(得分:0)
这看起来不像PHP数组...... D:
我不确定,但你可能想尝试这个,我知道,这是两行代码
$temp = $object->getWebUserInfo($id);
echo $temp["username"];