Alternatif (http://pl.php.net/get_class_vars Changelog bakınız) basitçe get_class_vars()
kullanamıyorum?
5
A
cevap
7
Bu yansıma kullanılarak mümkündür.
Array
(
[0] => ReflectionProperty Object
(
[name] => alpha
[class] => Foo
)
)
3
Yoksa bunu yapabilirsiniz:
<?php
class Foo {
public $alpha = 1;
protected $beta = 2;
private $gamma = 3;
}
$ref = new ReflectionClass('Foo');
print_r($ref->getProperties(ReflectionProperty::IS_PUBLIC));
sonucudur
$getPublicProperties = create_function('$object', 'return get_object_vars($object);');
var_dump($getPublicProperties($this));
1
Sen sınıf çıktısı verir IteratorAggregate arayüzünü
class Test implements IteratorAggregate
{
public PublicVar01 = "Value01";
public PublicVar02 = "Value02";
protected ProtectedVar;
private PrivateVar;
public function getIterator()
{
return new ArrayIterator($this);
}
}
$t = new Test()
foreach ($t as $key => $value)
{
echo $key." = ".$value."<br>";
}
uygulamak yapabilirsiniz :
PublicVar01 = Value01
PublicVar02 = Value02
Bu sorunun yalnızca PHP 5.0.2'de bir sorun olacağını düşünüyorum. PHP 5.0.1 ve daha önceki sürümlerde, korunan ve özel özellikler döndürülür, ancak bir regex ile hariç tutulabilen nul bayt ('\ x00') ile öneklenir. – MrWhite