Attribut tableau

pierre -  
totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   200
 
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 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
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   Statut Membre Dernière intervention   200
 
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