2010-08-18 13 views
1

J'ai le problème suivant, ma fonction ajoute du code à une chaîne $ string ($ string. = Bla), mais au début la chaîne est vide, donc je reçois ce message d'erreurPHP Ajouter à la chaîne vide sans erreur

erreur Un PHP a été rencontré
gravité: avis
message: Undefined variable: string $
Nom du fichier: bibliothèques/file.php
Numéro de ligne: 90

Bien sûr, si je définis la chaîne à l'avance, comme $ string = NULL, l'erreur ne se produirait pas, mais mais je pense qu'il y a peut-être un moyen d'ajouter une chaîne sans avoir à définir la variable à l'avance/avoir un ! chèque vide

Ce devrait être juste une chose d'une ligne, je suis à la recherche d'un code mince.

Merci.

Répondre

4

Le code mince et la suppression de toutes les erreurs de niveau d'avis ne vont généralement pas de pair. Comme vous le savez, l'erreur concerne l'utilisation d'une variable non initialisée. Vous ne pouvez pas l'initialiser sans ... l'initialiser.

Je ne considérerais pas $string = '';, cependant.

+0

Eh bien, en revanche, il le fait $ string. = Bla; par rapport à $ chaîne = NULL; $ chaîne. = Bla; Je l'exécute à travers la boucle foreach, donc je dois l'initialiser à l'intérieur car en réalité c'est un tableau avec des clés différentes, donc je ne connais pas tous les noms utilisés. –

1

Il devrait toujours fonctionner, c'est juste l'interprète qui vous donne un avertissement. Vous pouvez supprimer les avertissements en php si vous voulez avec:

error_reporting(E_NONE); 

Cela dit de déclarer vos variables d'abord que sa généralement ses bonnes pratiques et des avertissements activés pendant que vous testez.

+0

+1 "=." - Et il n'y a même pas un avertissement, juste un avis, ce qui est moins grave qu'un avertissement. –

+5

Désactiver les erreurs cache les problèmes, ne les résout pas. – Chris

2

La première fois que vous utilisez une variable juste faire "=" pas

$newVar = ""; //good 
$newVar2 .= ""; //bad 

$newVar .= ""; //ok because of good line 
+0

Merci, mais je sais tout ce qui a été dit plus haut. Je sais pourquoi j'ai l'erreur, je sais comment m'initialiser et je sais cacher les erreurs (même si, comme dit plus haut, se cacher n'est pas une solution). Je me demandais simplement s'il y avait un moyen d'écrire la mauvaise ligne comme bonne. Je suppose que je dois aller pour la façon laide et initilize. Merci bien. –

+2

L'initialisation n'est pas la "laide" façon. C'est la manière * correcte *. Initialiser toutes vos variables. Habituez-vous. – Jason

Questions connexes