Page 1 sur 1

Récupérer un array à l'intérieur d'une class

Posté : 20 mars 2014, 05:20
par merlin867
Bonjour à tous! je débute au niveau POO afin de réécrire un plugin pour wordpress au complet. La première version fonctionnait très bien sauf qu'elle devenait difficile à modifier avec le temps... Je vais donc faire simple.
Class Prix {
    Private $_prix;
    Private $_date;
    Public function __construct($prix, $date) {
        $this->_date = $date;
        $this->_prix = $prix;
    }
    Public function Getdate() {
        return $this->_date;
    }
    Public function GetPrix() {
        return $this->_prix;
    }
    Public function __toString() {
        return $this->_date . ' : $' . number_format($this->_prix, 2, '.', ' ');
    }
}

Class boutique {
    Private $_nom;
    private $_photo;
    private $_meta;
    Private $_Prix = array();
   
    Public function __construct($nom = null, $photo = null, $meta = null, $prix = null) {
        $this->_nom = $nom;
        $this->_photo = $photo;
        $this->_meta = $meta;
        $this->_Prix = $prix;
    }

Public function SetName($name) {
        $this->_nom = $name;
    }

    Public function GetName() {
        return $this->_nom;
    }

    public function SetPhoto($photo) {
        $this->_photo = $photo;
    }

    public function GetPhoto() {
        return $this->_photo;
    }

    public function GetMeta() {
        return $this->_meta;
    }

    Public function SetMeta($Meta) {
        $this->_meta = $Meta;
    }

    Public function SetPrix($Prix) {
        $this->_Prix = $Prix;
    }

    Public Function GetPrix() {
        return $this->_Prix;
    }
}
J'ai enlevé de ces deux class le superflu(fonctions non utile au problème et commentaires) pour alléger...
Mon problème se situe lorsque je veux accéder à un des prix de la boutique.
$prix1 = new Prix(14.99, "2014-03-20");
$prix2 = new Prix(100.99, "2014-03-25");
$boutique = new boutique("Le  Magazin Perdu", "http://perdu.com", "des metas données", array($prix1, $prix2));
echo $boutique->GetPrix()[0]->GetPrix();  // erreur
echo $boutique->GetPrix()[0]; // erreur
Dans le premier echo, comment fait t'on pour accéder à l'index (X) d'un array?
Et dans le deuxième, vu que j'ai la fonction magique __tostring(), ne devrait t'il pas pouvoir me le donner??

Probablement des question stupides, mais je commence au niveau POO et je suis un peu perdu dans ce cas précis.
Merci
Francois

Re: Récupérer un array à l'intérieur d'une class

Posté : 20 mars 2014, 09:22
par xTG
Le premier pourrait être écrit de la sorte :
$liste_prix = $boutique->GetPrix();
echo $liste_prix[0]->GetPrix();
Je pense pareil pour le second, le fait t'attaquer directement le tableau du retour de fonction ne me semble pas top.
Il me semble qu'il y a une écriture possible mais je ne m'en souviens plus (essayer avec des parenthèses).

Re: Récupérer un array à l'intérieur d'une class

Posté : 20 mars 2014, 14:59
par merlin867
@xTG merci pour les indications! Je vais m'en tenir à cela et voir si c'est compatible avec le projet!

Francois

Re: [RESOLU] Récupérer un array à l'intérieur d'une class

Posté : 23 mars 2014, 16:17
par moogli
salut,

ce que tu cherche à faire est possible avec php, mais que depuis la version 5.5 http://fr2.php.net/manual/fr/language.t ... example-93

@+