Bir nesnenin özel mülkünün öğelerini anonim bir işlevle dökmeye çalışıyorum - elbette bunu başka yollarla da başardım, ancak PHP conundrum Başımın tepesinden çözemiyorum, $ foo = $ değerinin altında ve $ foo kullanıyordum - ama bu bana özel şeyleri vermeyecek, yani ... öneri?PHP'de anonim işlevdeki bir nesnenin özel/korumalı özelliklerine erişme
örnek kod: Ne önerim doğrudan yapmak için hiçbir yolu kesinlikle yoktur inanıyoruz
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();
["Özel değişkenlerin bir kapatma içinde erişilmesi"] (http://stackoverflow.com/q/3722394/90527), ancak NikiC'nin yanıtı, kamuya açık olmayan özelliklerin yanı sıra, kamuya açık olmayan yöntemlere erişmek için de çalışır. bu yüzden kapatma için oylama değil. – outis