Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE POUR CREER UN OBJET DYNAMIQUE PHP5


Information sur la source

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

  • <?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;
  • * ?>
  • * </code>
  • *
  • * @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;
  • }
  • }
  • ?>
<?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;
 * ?>
 * </code>
 * 
 * @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;
    }
}
?>

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de kankrelune le 25/04/2007 17:02:56

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°

signaler à un administrateur
Commentaire de Gorrk le 25/04/2007 17:09:47

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

lien dynamique [ par kedieng ] Salut à tous! Je fais une petite messagerie. Lorsqu'on clique sur Boite de reception on voit la liste de ses messages dans un tableau à trois colonnes site dynamique conseil [ par miladys ] Bonjour,excusez- de vous déranger avec mes questions, mais c'est très difficile trouver une réponse, j'ai un projet de site Internet, mais je ne sais tableau dynamique [ par vilja ] Bonjour! J'ai juste une petite question à poser Voilà je fait une page php avec un tableau dynamique en fonction des réponses trouvé suite à une reche site web dynamique [ par rakyouna ] Bjr à tous,si j'implémente un site web dynamique avec EasyPHP, est-ce qu'il peut tourner sur un serveur IIS?car par défaut, avec EasyPHP il y a le ser envoi de mail [ par abdouinfomiage ] slt les amis j veux envoyer un e-mail sous php mais ca marche pas j utilise le code suivant: envoi.php:&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 aide en php5 [ par RachDevelop ] bonjour un tous je débute en php objet , si quelcun peut me m'aider avec un tutorial ou des conseils , car j'ai pas une grande vision objet et je rame Creation de pdf a partir de page dynamique [ par iow4 ] Bonjour, J'ai une page dynamique qui prend plusieurs parametres en _POST et j'aimerais faire un PDF de cette page Comment faire ? J'utilise xhtml2pd Menu deroulant dynamique ajax [ par ns_deux ] Bonjour, Je cherche à faire un menu deroulant dynamique qui va interroger ma base mysql en temps réel. J'aimerais que, lorsque je cliques sur mon menu moteur de recherche sur contenu dynamique [ par caviar ] saluté ... j'ai regardé le scrip http://www.phpcs.com/codes/MOTEUR-RECHERCHE-INTERNE-SIMPLE_13119.aspx qui est très sympas ... et je me demandais si i Return avec un objet XML [ par Evangun ] Bonsoir à tous,c'est du javascript, mais comment se fait-il que je ne puisse pas faire ceci ? :if (_xmlHttp.readyState==4&amp;&amp;_xmlHttp.responseXM


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.