get_class_vars()
est l'évidence un - voir get_class_vars docs sur le site PHP.
Modifier: exemple de configuration en utilisant cette fonction:
$foo = new Foo();
$properties = get_class_vars("Foo");
foreach ($vars as $property)
{
$foo->{$property} = "some value";
}
Vous pouvez également utiliser l'API de réflexion - de la PHP docs:
<?php
class Foo {
public $foo = 1;
protected $bar = 2;
private $baz = 3;
}
$foo = new Foo();
$reflect = new ReflectionClass($foo);
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);
foreach ($props as $prop) {
print $prop->getName() . "\n";
}
var_dump($props);
?>
... exemple pris directement à partir de PHP docs liés ci-dessus, mais modifié pour votre but de ne récupérer que les propriétés publiques. Vous pouvez filtrer sur public, protégé etc comme requis.
Ceci retourne un tableau de ReflectionProperty
objets qui contiennent le nom et la classe selon le cas.
Modifier: exemple de configuration en utilisant le tableau ci-dessus $props
:
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);
foreach ($props as $prop)
{
$foo->{$prop->getName()} = "some value";
}
connexes: [Comment trouver des propriétés publiques programatically d'une classe à l'intérieur de l'un de ses méthodes] (http://stackoverflow.com/q/13124072/367456) – hakre