Y a-t-il des différences entre get_object_vars($obj)
et (array) $obj
?
Les deux semblent renvoyer les propriétés publiques de l'objet.
Ce qui est mieux?
Ce n'est pas vraiment vrai.
get_object_vars
est sensible à la portée et retournera tous visible Propriétés sauf statique propriétés quelle que soit leur faisabilité. Si vous l'appelez à l'extérieur de votre classe, vous obtiendrez uniquement les membres du public; D'une classe dérivée, vous obtiendrez les membres protégés et publics; Et de la classe elle-même, vous obtiendrez tous les membres. Les touches de tableau représentent les noms de propriété et ne sont pas mutilés.
Les (array)
Retours de moulage, au moins sur PHP 5.3.0, toutes les propriétés d'objet, public et sinon. Le nom des propriétés est mutilé en fonction de leur niveau de protection:
public
: non mutilé, identique aux noms de propriétéprotected
: nom de clé pour la propriété commence par un *
private
: nom de clé pour la propriété commence avec le nom de la classeVoir Casting à un tablea Pour plus d'informations.
J'espère que vous serez capable de mieux comprendre lequel est le plus approprié pour votre situation.
Mieux vaut ce que vous avez réellement besoin. get_Object_vars () ne montre pas de membres privés et protégés. Voir Ce commentaire dans le manuel pour un exemple.