Page 1 sur 1

Passage d'un array à une fonction

Posté : 07 avr. 2006, 20:16
par sfourre
Je souaite passer un tableau à une fonction, mais il me manque quelque chose.
// je récupère mes variable
$tabAdresse["nom"] = $_POST['frm_nom'];
$tabAdresse["prenom"] = $_POST['frm_prenom'];

// et j'essaye de les afficher
fctAffiche ($tabAdresse);

// oups, ca marche pas
function fctAffiche ($tabAffiche)
{
echo $tabAffiche["nom"] ;
echo $tabAffiche["prenom"] ;
}
Ou est l'erreur svp

Amicalement

Stéphane

Posté : 07 avr. 2006, 20:27
par mario
http://php.developpez.com/faq/?page=var ... isfonction

:arrow: n'utilise pas la fonction avant de l'avoir déclarée

Posté : 07 avr. 2006, 20:58
par sfourre
Effectivement, mais j'ai écrit ces quelques lignes pour pessayer de présenter clairement ma demande et ne pas embrouiller tous le monde avec un extrait de mon code, qui sortit de son contexte serait peu compréhensible.

En fait, ma fonction fctAffiche est "logée" dans un autre fichier .php inclus par un include avant mon code.

Mon code serait donc plus proche de ceci :
function fctAffiche ($tabAffiche) 
{ 
echo $tabAffiche["nom"] ; 
echo $tabAffiche["prenom"] ; 
} 

// je récupère mes variable d'un formulaire
$tabAdresse["nom"] = $_POST['frm_nom']; 
$tabAdresse["prenom"] = $_POST['frm_prenom']; 

// et j'essaye de les afficher 
fctAffiche ($tabAdresse);
Ce code me génère une erreur sur le fichier incluant la fonction fctAffiche :
Missing argument for fctAffiche() in ...

Amicalement

Stéphane

Posté : 07 avr. 2006, 21:14
par Cyrano
Lors de ta récupération, crée donc ton tableau avant d'y mettre des données :
<?php
function fctAffiche ($tabAffiche)
{
    echo $tabAffiche["nom"] ;
    echo $tabAffiche["prenom"] ;
}

// je récupère mes variable d'un formulaire
$tabAdresse = array("nom"    => $_POST['frm_nom'],
                    "prenom" => $_POST['frm_prenom']);

// et j'essaye de les afficher
fctAffiche($tabAdresse);
?>

Posté : 08 avr. 2006, 09:07
par sfourre
Merci de vos réponse, j'ai pu mettre en oeuvre ma fonction.

Une petite dernière sur le tableau associatif. Je ne peu créer mon tableau d'un coup, j'ai quelques variables de mon POST qui doivent être testée avant création.

J'ai fais mes test avant inclusion en stockant dans une variable temporaire et cela fonctionne, mais pas très élégant et risqué de multiplier les variables.
Mais si j'avais souhaité ajouter des éléments après avoir fini l'init de mon tableau ?

// je récupère mes variable d'un formulaire 
$tabAdresse = array("nom"    => $_POST['frm_nom'], 
                    "prenom" => $_POST['frm_prenom']); 

if (machintruc)
{
// vide le tableau précédemment créé !!! je suis pas avancé
$tabAdresse = array("ville" => $machinbidule);

// ou alors, mais génère une erreur !!!
array_push ($tabAdresse, "ville" => $machinbidule);
}
Ma question est : comment ajouter un élément dans un tableau associatif déjà créé ?

Amicalement

Stéphane

Posté : 08 avr. 2006, 11:23
par Ryle
Normalement ca se fait tout simplement en définissant le nouvel index et la valeur associée
// je récupère mes variable d'un formulaire 
$tabAdresse = array("nom"    => $_POST['frm_nom'], 
                    "prenom" => $_POST['frm_prenom']); 

$tabAdresse["ville"] = $machinbidule; 
En fait, lors de la création, tu devrais normalement pouvoir garder ton code initiale et simplement ajouter la création du tableau avant
$tabAdresse = array();
// je récupère mes variable d'un formulaire 
$tabAdresse["nom"] = $_POST['frm_nom']; 
$tabAdresse["prenom"] = $_POST['frm_prenom']; 
Ca dépend peut être de la config du php.ini, mais normalement ça devrait fonctionner partout, je te laisse le soin de tester :)

Posté : 08 avr. 2006, 12:45
par sfourre
C'est tout bon

Merci à tous

Stéphane