【发布时间】:2011-09-17 05:19:06
【问题描述】:
我试图通过匿名函数转储对象私有属性的元素 - 当然我可以通过任何其他方式实现这一点,但这突出了我无法解决的 PHP 难题,缺少 $foo = $this 并使用 $foo - 但那不会给我私人的东西,所以...建议?
示例代码:
class MyClass
{
private $payload = Array( 'a' => 'A element', 'b' => 'B element');
static $csvOrder = Array('b','a');
public function toCSV(){
$values = array_map(
function($name) use ($this) { return $this->payload[$name]; },
self::$csvOrder
);
return implode(',',$values);
}
}
$mc = new MyClass();
print $mc->toCSV();
【问题讨论】:
-
"Accessing private variables from within a closure" 的重复,但 NikiC 的答案适用于访问非公共方法和非公共属性,因此不投票关闭。
标签: php oop anonymous-function