[PHP] Undefined Variable existante ...
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Voilà maintenant une bonne heure que je bloque sur une erreur, sur un script pourtant très simple, mais je ne vois vraiment pas pourquoi il me renvoi un "Undefined variable" :
Je ne comprends vraiment pas pourquoi j'ai le droit à ceci :
Merci d'avance pour votre aide :)
It's Hard to concentrate, but if it can Make you feel better ...(?)
Voilà maintenant une bonne heure que je bloque sur une erreur, sur un script pourtant très simple, mais je ne vois vraiment pas pourquoi il me renvoi un "Undefined variable" :
<?php function get_errors($errors_log) { $errors_file = $errors_log; $errors_log = implode("\n", ${$errors_log}); //le script bloque ici $fp_errors_log = fopen($errors_file.'.txt', 'a+'); fwrite($fp_errors_log, $errors_log); fclose($fp_errors_log); } $error = array(); $error[] = 'erreur#1'; $error[] = 'erreur#2'; $error[] = 'erreur#3'; get_errors('error'); //apparemment la variable $error ne serait pas définie ... ?>
Je ne comprends vraiment pas pourquoi j'ai le droit à ceci :
Notice: Undefined variable: error in S:\wamp\www\*********\*****\***.php on line 6(et par conséquent une erreur sur l'implode ensuite)
Merci d'avance pour votre aide :)
It's Hard to concentrate, but if it can Make you feel better ...(?)
A voir également:
- [PHP] Undefined Variable existante ...
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Variable d'environnement temp - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
- Range avec une Variable ✓ - Forum VB / VBA
2 réponses
Euh il me semble au contraire que $error est définie trois fois et que ce n'est pas une variable mais un tableau.
Je peut me tromper mais tu as indiqué dans ta fonction que le paramétre doit être une variable:
//--
function get_errors($errors_log)
//--
/* pour indiquer que c'est un tableau le paramétre il faut mettre:
function get_errors($errors_log[]){
//-- ce que fait ma fonction
}
//--------autre problème avec les tableaux, décidément, mais bon la ca dervait marquer une erreur direct
$error = array();
// odnc on a un array
$error[] = 'erreur#1';// faux on n'affecte pas une string à un array l'opérateur de concaténisation est le '.' en php.
/* donc au lieu de:
$error[] = 'erreur#2';
$error[] = 'erreur#3';
*/
//-- c'est plus juste:
$error[].='erreur#1;/*-- le point dans le cas d'un array a indice numérique et sans le dit indice entre les crochets va concatener/rajouter le string à la fin du tableau(nouvel indice)*/
$error[].='erreur#2;
$error[].='erreur#3;
//--ou alors encore plus simple:
$error= array('erreur#1'','erreur#2','erreur#3');
Je peut me tromper mais tu as indiqué dans ta fonction que le paramétre doit être une variable:
//--
function get_errors($errors_log)
//--
/* pour indiquer que c'est un tableau le paramétre il faut mettre:
function get_errors($errors_log[]){
//-- ce que fait ma fonction
}
//--------autre problème avec les tableaux, décidément, mais bon la ca dervait marquer une erreur direct
$error = array();
// odnc on a un array
$error[] = 'erreur#1';// faux on n'affecte pas une string à un array l'opérateur de concaténisation est le '.' en php.
/* donc au lieu de:
$error[] = 'erreur#2';
$error[] = 'erreur#3';
*/
//-- c'est plus juste:
$error[].='erreur#1;/*-- le point dans le cas d'un array a indice numérique et sans le dit indice entre les crochets va concatener/rajouter le string à la fin du tableau(nouvel indice)*/
$error[].='erreur#2;
$error[].='erreur#3;
//--ou alors encore plus simple:
$error= array('erreur#1'','erreur#2','erreur#3');
ah oui pardon j'avait lu une variable ou tu mets une string.
As tu essayé $error [].= au lieu de $error[]=
parfois il suffit d'un truc tout bête et ça fait 2 mois que j'en chXXX sur des tableaux à multidimensions à cause d'une analyse bâclée...merci patron
As tu essayé $error [].= au lieu de $error[]=
parfois il suffit d'un truc tout bête et ça fait 2 mois que j'en chXXX sur des tableaux à multidimensions à cause d'une analyse bâclée...merci patron
Avec la concaténation ça ne marche pas mieux ... :/
Enfin je pense que je vais rajouter un paramètre à ma fonction qui contiendra le texte, ce sera aussi simple à mettre en place ^^
Enfin je pense que je vais rajouter un paramètre à ma fonction qui contiendra le texte, ce sera aussi simple à mettre en place ^^
<?php function get_errors(array $errors_log, $log_name) { $errors_log = implode("\n", $errors_log); $fp_errors_log = fopen($log_name.'.txt', 'a+'); fwrite($fp_errors_log, "\n".$errors_log); fclose($fp_errors_log); } ?>Le texte est séparé de la variable, ça m'oblige à recopier deux fois le nom de la variable, mais au moins ça fonctionne ^^
Pour ce qui est de l'affection du texte à mon array, la façon dont je le fais fonctionne parfaitement, et me semble correct ...
Merci tout de même pour ta réponse ;)