【发布时间】:2012-08-06 08:00:56
【问题描述】:
有没有办法在没有 foreach 循环(否则不变)的情况下实现以下 PHP 类?
<?php
class foo {
private static $_thing = array(
'kee' => 'valyu'
);
public static function fetch($property, $key = '') {
if (property_exists('foo', $property)) {
if ($key == '') return self::$$property;
else {
# i cannot seem to do self::$$property[$key].
foreach (self::$$property as $_key => $_value) {
if ($_key == $key) return $_value;
}
}
}
return false;
}
}
var_dump(foo::fetch('bad')); # null
var_dump(foo::fetch('_thing')); # array(1) { ... }
var_dump(foo::fetch('_thing', 'bad')); # null
var_dump(foo::fetch('_thing', 'kee')); # string(5) "valyu"
?>
self::$$property[$key] 让我“访问未声明的静态属性:foo::$x”(x 是 $key 的字符串值中的第一个字符)。
【问题讨论】:
标签: php arrays oop properties getter-setter