- array_intersect_key: documentation ( source)
- array_merge: documentation ( source)
<?php
class bag {
protected $vals;
public function __construct(array $vals) { $this->vals = $vals; }
public function get($key) { return $this->vals[$key]; }
}
$tmp = 'foo';
$test = array(
'user' => &$tmp,
);
$test['_entity'] = &$test['bar'];
$bag = new bag(array_intersect_key($test, array('user' => true)));
$test['user'] = 'baz';
print $bag->get('user') . "\n";
$tmp = 'foo';
$test = array(
'user' => &$tmp,
);
$test['_entity'] = &$test['bar'];
$temp = array_merge(array(), array_intersect_key($test, array('user' => true)));
$bag = new bag($temp);
$test['user'] = 'baz';
print $bag->get('user') . "\n";
$tmp = 'foo';
$test = array(
'user' => &$tmp,
);
$test['_entity'] = &$test['bar'];
$temp = array();
foreach (array_intersect_key($test, array('user' => true)) as $key => $value) {
$temp[$key] = $value;
}
$bag = new bag($temp);
$test['user'] = 'baz';
print $bag->get('user') . "\n";