Fonctions PHP

Thomas3347
Invité n'ayant pas de compte PHPfrance

11 janv. 2009, 23:53

Bonjour,J'ai un problème de fonction ! Et je ne comprends pas pourquoi : regardez par vous-même.

Je crée deux Array, l'un sous $necessite et l'autre sous $perso

Si je prends un choix par défaut pour la variable $choix, j'obtiens :
On obtient : Chantier
On possede bien un Chantier, il est possible de construire ce truc
$choix = "Rayon";
		$nom = $necessite[$choix];
		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";
		}
En revanche lorsque j'utilise une fonction qui détermine $choix : j'obtiens :
On fait le test pour : Rayon
On obtient :

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /mnt/167/sdb/a/2/thomas3347/batiments.php on line 39
On ne possede pas de , on ne peut pas construire ce truc
function accessibilite($choix) {

		echo "On fait le test pour : " . $choix . "<br/>";
		$nom = $necessite[$choix];
		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");
Savez-vous pourquoi ma fonction ne marche pas alors que la valeur de $choix est la même dans chaque cas, c.a.d "Rayon". Merci

Invité
Invité n'ayant pas de compte PHPfrance

11 janv. 2009, 23:56

J'ai le même message d'erreur avec la fonction "in_array" que avce "array_key_exists". Merci

Thomas3347
Invité n'ayant pas de compte PHPfrance

12 janv. 2009, 00:00

Pour "in_array" le message d'erreur obtenu est :
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /mnt/167/sdb/a/2/thomas3347/batiments.php on line 39

ViPHP
ViPHP | 3607 Messages

12 janv. 2009, 10:11

Bonjour, essaye de déclarer ton tableau necessité dans la fonction...
ou alors passe le en paramètre ;)

Mammouth du PHP | 568 Messages

12 janv. 2009, 11:32

Déclare ton tableau $necessite en global dans ta fonction.