Classe pour creer un objet dynamique php5

Soyez le premier à donner votre avis sur cette source.

Vue 9 889 fois - Téléchargée 345 fois

Description

Voila, c'est une classe qui permet de creer un objet dynamiquement, c'est a dire avec des variables pouvant se definir a l'infini.

L'object peut-etre creer a partir d'un tableau, pour cela, il suffit de le passer en parametre
lors de la creation de l'objet.

Source / Exemple :


<?php
/**

  • Classe de creation d'objet a partir de tableau
  • Cette classe permet de transformer un tableau en objet,
  • cela fonctionne meme avec un tableau vide.
  • Cette classe necessite pour fonctionner correctement :
  • - la classe MyException : http://www.phpcs.com/code.aspx?id=28249
  • <code>
  • <?php
  • // Sans un tableau
  • $object = new Array2Object();
  • $object->Test = "Ceci est un test";
  • // Avec un tableau
  • $array = array("Test" => "Ceci est un test");
  • $object = new Array2Object($array);
  • echo $object->Test;
  • ?>
  • @author Gorrk
  • /

  • class Array2Object
    {
    /**
    • Variables de l'objet
    • @var array
    • /

    protected $vars;

    /**
    • Construit l'objet Array2Object
    • @param array $vars tableau a transformer
    • @return void
    • /

    public function __construct($vars = array())
    {
    $this->vars = $vars;
    }

    /**
    • Genere une exception car on a tente d'appeler une methode inexistante
    • @param string $name nom de la methode
    • @param array $arguments arguments passes
    • @return void
    • /

    public function __call($name, $arguments)
    {
    throw new MyException("la methode <b>".$name."</b> n'existe pas");
    }

    /**
    • Retourne une valeur
    • @param string $name nom de la variable
    • @return mixed
    • /

    public function __get($name)
    {
    if (TRUE === isset($this->vars[$name]))
    return $this->vars[$name];
    else
    return NULL;
    }

    /**
    • Attribue une valeur a une variable
    • @param string $name nom de la variable
    • @param string $value valeur a assigne a la variable
    • @return void
    • /

    public function __set($name, $value)
    {
    $this->vars[$name] = $value;
    }

    /**
    • Retourne l'object sous forme de tableau
    • @return array
    • /

    public function return_array()
    {
    return $this->vars;
    }
    }
    ?>
    </code>

    Codes Sources

    A voir également

    Ajouter un commentaire

    Commentaires

    kankrelune
    Messages postés
    1305
    Date d'inscription
    mardi 9 novembre 2004
    Statut
    Membre
    Dernière intervention
    21 mai 2015
    -
    un peu inutile ta classe... non... .. ?


    $array array("Test"> "Ceci est un test");
    $object = new Array2Object($array);
    echo $object->Test;

    =>

    $array array("Test"> "Ceci est un test");
    $object = (object)$array;
    echo $object->Test;

    Bon d'accord elle date d'il y a 3 ans... .. . ;o)

    @ tchaOo°
    Gorrk
    Messages postés
    97
    Date d'inscription
    mercredi 16 avril 2003
    Statut
    Membre
    Dernière intervention
    26 avril 2007
    -
    Oui, oui, je sais, mais effectivement, à l'époque, je ne connaissais pas.
    Mais surtout, le but de la classe n'était pas d'être utilisée mais plutôt de faire découvrir les méthodes de surcharges.

    Merci malgré tout pour ton commentaire.
    Commenter la réponse de kankrelune

    Vous n'êtes pas encore membre ?

    inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

    Les membres obtiennent plus de réponses que les utilisateurs anonymes.

    Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

    Le fait d'être membre vous permet d'avoir des options supplémentaires.