그 클래스 내에서 또는없이 클래스의 모든 필드를 통해 foreach를 수행하는 방법은 무엇입니까?foreach 모든 개체 속성에
class Foo
{
public $a;
public $b;
private $c;
private $d;
public function __construct($params)
{
foreach($params as $k=>$v){
$this->$k = $v;
}
}
public function showAll()
{
$output = array();
foreach (this as $k=>$v) { // How to refer to all the class properties?
$output[$k] = $v;
}
return $output;
}
}
가 어떻게 showAll()
방법에 foreach()
가 $a
, $b
, $c
및 $d
속성을 참조 수 있습니다 예를 들어, 다음과 같은 클래스를 제공?
그 문제 때문에 수업 외부의 모든 공개 속성을 가져올 수 있습니까?
$params = array();
$foo = new Foo($params);
foreach ($foo->allProperties as $f=>$v) { // how to do this?
echo "{$f}: {$v}\n";
}
'ShowAll 관련()'반환 '$ this' (달러 기호가 빠짐)로 오타를 수정하면 모든 속성이 적용됩니다. 질문은 약간 불분명하다. – Jon
클래스에 정적 속성이 없으므로 기술적으로 클래스에는 값이 없습니다. 객체 속성을 의미합니까? 이것은 반사와 함께 작동합니다. –
감사합니다. 볼프강, 객체 속성을 의미했습니다. 정적 멤버가 포함되어야합니다. – dotancohen