Passage d'un array à une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Passage d'un array à une fonction

par sfourre » 08 avr. 2006, 12:45

C'est tout bon

Merci à tous

Stéphane

par Ryle » 08 avr. 2006, 11:23

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 :)

par sfourre » 08 avr. 2006, 09:07

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

par Cyrano » 07 avr. 2006, 21:14

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);
?>

par sfourre » 07 avr. 2006, 20:58

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

par mario » 07 avr. 2006, 20:27

http://php.developpez.com/faq/?page=var ... isfonction

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

Passage d'un array à une fonction

par sfourre » 07 avr. 2006, 20:16

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