微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PHP中创建数组中的引用键

目前,我的脚本创建了引用的键:

<?PHP
$arr = array(
    'authority'      => $this->object->authority,
    'fragment'       => $this->object->fragment,
    'host'           => $this->object->host,
    'pass'           => $this->object->pass,
    'path'           => $this->object->path,
    'port'           => $this->object->port,
    'query'          => $this->object->query,
    'scheme'         => $this->object->scheme,
    'scheme_name'    => $this->object->scheme_name,
    'scheme_symbols' => $this->object->scheme_symbols,
    'user'           => $this->object->user,
);

$arr['domain']   = &$arr['host'];
$arr['fqdn']     = &$arr['host'];
$arr['password'] = &$arr['pass'];
$arr['protocol'] = &$arr['scheme'];
$arr['username'] = &$arr['user'];

ksort($arr);
return $arr;

我的问题是:有更好的方法来做到这一点,可能一气呵成吗?

我知道下面的代码不起作用,但也许有人知道更好的方法吗?

<?PHP
$arr = array(
  'a' => '1',
  'b' => &$arr['a']
);

解决方法:

I need to recreate the array without making a reference to the original object

你应该使用在PHP5中引入的object cloning.这将允许您使用当前值创建对象的副本,同时允许原始类维护对已经存在的其他变量的任何引用:

$arr = clone $this->object;

变量可以作为类属性访问,而不是像示例中的数组键一样.如果您遇到问题,可以使用类似于get_class_vars()内容返回类的属性数组.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐