Attribut tableau

Fermé
pierre - Modifié par pierre le 28/01/2014 à 21:08
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 28 janv. 2014 à 23:40
Bonjour,
j'ai une class qui ce presente comme ceci:

class maClass
{
    private $contact = array('Nom' => 'potu', 'prenom' => 'Luc', 'Age' => 20, 'Code postal' => 66700);
}


Ce que j'aimerais pouvoir faire, c'est pouvoir changer le nom d'une clé et ou une valeur, ajouter ou supprimer de nouvelles cles et ou de nouvelles valeurs, afficher une clé et une valeur choisie; par exemple n'afficher que prenom : Luc

Voila merci

3 réponses

totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par totodunet le 28/01/2014 à 23:21
pour changer la valeur "nom" par exemple :

$contact['Nom']="ma_valeur";

pour ajouter un élément :

$contact['nouvelle_cle']="ma_valeur"; //ça l'ajoute automatiquement

pour effacer un élément :

unset($contact['cle_a_effacer']);

un coup d'oeil sur la doc officielle ça fait du bien aussi, je n'ai fait que recopier. il y a des gens qui ont travailler pour fournir une documentation correcte et compréhensible. et en plus elle est en français ;)

-> https://www.php.net/manual/fr/language.types.array.php

Qui ne tente rien n'a rien
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 28/01/2014 à 23:31
Salut,

Tu peux par exemple ajouter des méthodes qui font ce dont t'as besoin.

class maClass {
    private $contact = array(
                   'Nom' => 'potu', 
                   'prenom' => 'Luc', 
                   'Age' => 20, 
                   'Code_postal' => 66700);

    public function addLine($key, $value) {
        $this->contact[$key] = $value;
    }

    public function deleteLine($key) {
        if(array_key_exists($key, $this->contact))
            unset($this->contact[$key]);
    }

    public function editKeyName($key, $newKey) {
        if(array_key_exists($key, $this->contact)) {
            $this->contact[$newKey] = $this->contact[$key];
            unset($this->contact[$key]);
        }
    }

    public function editKeyValue($key, $newValue) {
        if(array_key_exists($key, $this->contact))
            $this->contact[$key] = $newValue;
    }

    public function getValue($key) {
        if(array_key_exists($key, $this->contact))
            return $this->contact[$key];
    }  
}

$obj = new maClass();

// Editer la clé "prenom"
$obj->editKeyName('prenom', 'Prenom');

// Editer la valeur de "Age"
$obj->editKeyValue('Age', 34);

// Ajouter une nouvelle ligne (clé + valeur)
$obj->addLine('Sexe', 'Homme');

// Supprimer une ligne (clé + valeur)
$obj->deleteLine('Code_postal');

// Afficher le sexe
echo 'Sexe : ' . $obj->getValue('Sexe');


Mettez en résolu quand c'est résolu ...
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
28 janv. 2014 à 23:40
au temps pour moi j'avais pas vu que tu faisais de l'objet et que c'était en private

comme dit JooS, dans ce cas là, faut passer par des méthodes si les modifications doivent être faîtes en dehors de la classe
0