Fonction PHP
Résolu/Fermé
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
-
11 janv. 2009 à 23:08
Utilisateur anonyme - 12 janv. 2009 à 00:58
Utilisateur anonyme - 12 janv. 2009 à 00:58
Bonjour,
J'ai un probleme avec une fonction en PHP.
Si je prédéfinis une valeur pour une variable, le script est bon.
Si j'utilise une fonction pour attribuer une valeur à cette même variable, le script plante...
Allez voir ici !
http://www.phpfrance.com/forums/voir_reponse-275349.php#275349
Merci
J'ai un probleme avec une fonction en PHP.
Si je prédéfinis une valeur pour une variable, le script est bon.
Si j'utilise une fonction pour attribuer une valeur à cette même variable, le script plante...
Allez voir ici !
http://www.phpfrance.com/forums/voir_reponse-275349.php#275349
Merci
A voir également:
- Fonction PHP
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction miroir - Guide
- Fonction somme excel - Guide
13 réponses
Utilisateur anonyme
11 janv. 2009 à 23:31
11 janv. 2009 à 23:31
Qui est necessite ?
Dans une fonction la variable est locale. Elle n'existe pas ! Donc tu utilises $necessite, elle n'est pas déclarés à l'intérieur de la fonction mais à l'extérieur.
Par exemple :
$toto = 9;
function afficher() {
echo $toto;
}
afficher();
Cette fonction ne m'affichera rien ou bien une erreur !
SOIT
Tu déclares ta variable en global.
En écrivant global $necessite avant de l'affecter :
Dans mon exemple :
global $toto;
$toto = 9;
function afficher() {
echo $toto;
}
afficher();
--->Affichera 9
OU
Dans ta fonction tu passes $necessite en paramètre :
accessibilite("Rayon",$necessite);
Dans mon exemple :
$toto = 9;
function afficher($toto) {
echo $toto;
}
afficher($toto);
--->Affichera 9
Tu comprends ?
Dans une fonction la variable est locale. Elle n'existe pas ! Donc tu utilises $necessite, elle n'est pas déclarés à l'intérieur de la fonction mais à l'extérieur.
Par exemple :
$toto = 9;
function afficher() {
echo $toto;
}
afficher();
Cette fonction ne m'affichera rien ou bien une erreur !
SOIT
Tu déclares ta variable en global.
En écrivant global $necessite avant de l'affecter :
Dans mon exemple :
global $toto;
$toto = 9;
function afficher() {
echo $toto;
}
afficher();
--->Affichera 9
OU
Dans ta fonction tu passes $necessite en paramètre :
accessibilite("Rayon",$necessite);
Dans mon exemple :
$toto = 9;
function afficher($toto) {
echo $toto;
}
afficher($toto);
--->Affichera 9
Tu comprends ?
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
11 janv. 2009 à 23:36
11 janv. 2009 à 23:36
Ok je comprends.
Enfait $necessite est un tableau déclaré extérieurement à la fonction. Je teste ça tout de suite.
Merci d'avoir répondu !!
Enfait $necessite est un tableau déclaré extérieurement à la fonction. Je teste ça tout de suite.
Merci d'avoir répondu !!
Utilisateur anonyme
11 janv. 2009 à 23:39
11 janv. 2009 à 23:39
Derien !!
Un résolu si c'est bon ! Ou si tu as d'autres questions ^^
Un résolu si c'est bon ! Ou si tu as d'autres questions ^^
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
11 janv. 2009 à 23:47
11 janv. 2009 à 23:47
global $necessite; $necessite = array(... ... ... ...); function accessibilite($choix) { echo "On fait le test pour : " . $choix . "<br/>"; $nom = $necessite[$choix]; // !!!!!!!!!!!! ça plante ici !!!!!!!!!! echo "On obtient : " . $nom . "<br/>"; if (in_array($nom, $necessite)) { echo "On possede bien un " . $nom . ", il est possible de construire ce truc"; } else { echo "On ne possede pas de " . $nom . ", on ne peut pas construire ce truc"; } } accessibilite("Rayon");
J'obtiens :
On fait le test pour : Rayon On obtient : Warning: in_array() [function.in-array]: Wrong datatype for second argument in /mnt/167/sdb/a/2/thomas3347/batiments.php on line 40 On ne possede pas de , on ne peut pas construire ce truc
C'est comme si $nom ne pouvait pas prendre la valeur du tableau "necessite"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
11 janv. 2009 à 23:50
11 janv. 2009 à 23:50
OOOKKKKK c'est bon !!! Je l'ai passée en paramètre ma variable $necessite !!!
Merci beaucoup
Merci beaucoup
Utilisateur anonyme
11 janv. 2009 à 23:52
11 janv. 2009 à 23:52
j'ai di une bétise je crois,
essaie d'écrire global $necessite pas avant la déclaration mais juste avant echo "On fait le test pour : " . $choix . "<br/>";
essaie d'écrire global $necessite pas avant la déclaration mais juste avant echo "On fait le test pour : " . $choix . "<br/>";
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
12 janv. 2009 à 00:03
12 janv. 2009 à 00:03
Un tableau associatif crée en PHP ressemble à ça :
Est-ce que ça existe un tableau à 3 colones ??
J'utilise les tableaux en PHP pour ne pas faire de requete SQL à chaque fois que la fonction s'execute !
Sinon beaucoup plus facile de faire un script avec SQL, surtout avec les quantifieurs "WHERE"...
Array ( [Centrale electrique] => Chantier [Rayon] => Chantier )
Est-ce que ça existe un tableau à 3 colones ??
J'utilise les tableaux en PHP pour ne pas faire de requete SQL à chaque fois que la fonction s'execute !
Sinon beaucoup plus facile de faire un script avec SQL, surtout avec les quantifieurs "WHERE"...
Utilisateur anonyme
12 janv. 2009 à 00:16
12 janv. 2009 à 00:16
Oui c'est possible.
Il faut faire un tablau de tableau etc...
$tab = new Array(10); //Première dimension
for($i=0;$ i<$tab.length;$ i++){
$tab[$i] = new Array(10); // Deuxième dimension
for($j=0; $j<tab[$i].length; $j++)
$tab[$i][$j] = new Array(10); // troisième
}
Ca fait un tableau 10x10x10.
J'ai pas testé mais essaie de voir sur le net. Ça fait plus d'un an que je ne fais plus de PHP :( ça me manque ^^
Il faut faire un tablau de tableau etc...
$tab = new Array(10); //Première dimension
for($i=0;$ i<$tab.length;$ i++){
$tab[$i] = new Array(10); // Deuxième dimension
for($j=0; $j<tab[$i].length; $j++)
$tab[$i][$j] = new Array(10); // troisième
}
Ca fait un tableau 10x10x10.
J'ai pas testé mais essaie de voir sur le net. Ça fait plus d'un an que je ne fais plus de PHP :( ça me manque ^^
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
12 janv. 2009 à 00:21
12 janv. 2009 à 00:21
Reagrde :
http://thomas3347.free.fr/test.php
Je souhaiterais que :
http://thomas3347.free.fr/test.php
Je souhaiterais que :
[Centrale electrique] => Array // Prenne la valeur de [0] et non pas "array" ( [0] => Chantier [1] => 01 )
thomas3347
Messages postés
18
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
6 novembre 2010
2
12 janv. 2009 à 00:38
12 janv. 2009 à 00:38
Je te donne un exemple :
Je veux éclairer mon salon
* est-ce que je reçois de l'électricité
** est-ce que j'ai suffisament d'électricité
Exemple :
Alors est-ce que je peux eclairer mon salon ??
Tout celà est très facile à faire avec mySQL mais pas en PHP ^^ Le but étant d'alléger le code.
Merci pour tout
Je veux éclairer mon salon
* est-ce que je reçois de l'électricité
** est-ce que j'ai suffisament d'électricité
Exemple :
Le nécessaire pour chaque action Array ( [Eclairer] => Electricite ( [0] => Electricité [1] => Niveau 5 ) [xxx] => xxx ( [0] => xxx [1] => Niveau 3 ) ) Ce que je possède actuellement Array ( [Electricite] => Niveau 3 )
Alors est-ce que je peux eclairer mon salon ??
Tout celà est très facile à faire avec mySQL mais pas en PHP ^^ Le but étant d'alléger le code.
Merci pour tout
Utilisateur anonyme
12 janv. 2009 à 00:58
12 janv. 2009 à 00:58
<?php
$necessite = array("Eclairer" => array("Electricité","Niveau 5"), "xxx"=> array("xxx2","Niveau 3"));
echo $necessite["Eclairer"][0]; //affiche Electricité
echo $necessite["Eclairer"][1]; //affiche Niveau 5
echo "<br/><br/>";
//ou encore
foreach($necessite as $nom => $indice)
foreach($indice as $valeur)
echo $nom.":".$valeur."<br/>";
/*
Affichage
Eclairer:Electricité
Eclairer:Niveau 5
xxx:xxx2
xxx:Niveau 3
*/
?>
C'est ça ?!
Moi j'ai cours de recherche opérationnelle demain donc je te laisse ! je verrai tes réponses demain soir !!
Bon codage =) Une belle nuit s'annonce pour toi :p
$necessite = array("Eclairer" => array("Electricité","Niveau 5"), "xxx"=> array("xxx2","Niveau 3"));
echo $necessite["Eclairer"][0]; //affiche Electricité
echo $necessite["Eclairer"][1]; //affiche Niveau 5
echo "<br/><br/>";
//ou encore
foreach($necessite as $nom => $indice)
foreach($indice as $valeur)
echo $nom.":".$valeur."<br/>";
/*
Affichage
Eclairer:Electricité
Eclairer:Niveau 5
xxx:xxx2
xxx:Niveau 3
*/
?>
C'est ça ?!
Moi j'ai cours de recherche opérationnelle demain donc je te laisse ! je verrai tes réponses demain soir !!
Bon codage =) Une belle nuit s'annonce pour toi :p