HI,
ich versuche gerade mir aus einem Block ein Modul zu stricken. Allerdings habe ich da ein Problem:
ZitatNotice: Undefined variable: content in /www/modules/mein_modul/index.php on line 71
Ich habe in dem Bereich eine for-Schleife laufen, die ihre Daten in der Variabel $content unterbringt.
Das ganze schaut so aus:
$content .="blabla";
weiter unten lasse ich den Inhalt ausgeben:
OpenTable();
echo $content;
CloseTable();
Wenn ich oben in der while-Schleife das Leerzeichen, und den Punkt entferne, ist die Meldung weg. Allerdings wird dann aus der for-Schleife nur der letzte Wert angezeigt.
Was läuft denn hier falsch?
Hoi ;)
Schau mal dort: http://www.php-faq.de/q-fehler-variable.html
Zitat
Der Hinweis wird ausgegeben, weil mit einer nicht definierten Variablen hantiert wird, d. h. der Name der Variablen existiert nicht, ein konkreter Wert ist folglich auch nicht verfügbar. Durch die automatische Typ-Konvertierung wird der angenommene "Wert" NULL dann zwar in einen passenden Datentyp verwandelt - das ist aber nur ein "Notbehelf", damit das Script weiterlaufen kann.
...
Handelt es sich um Script-interne Variablen, sollten diese vor der Verwendung definiert werden. Bevor man also $foo .= "bla"; schreibt, um an $foo etwas anzuhängen, ist ein $foo = ""; nötig, um die Variable zu definieren und ihr einen leeren String zuzuweisen.
hmmm... ja, damit habe ich das auch schon probiert, aber das müsste doch auch irgendwie anders zu bewerkstelligen sein, weil diese Meldung beim Block nicht ausgegeben wird, und da das Teil auch nicht seperat definiert wurde.. :puzzled:
Hoi ;)
Von welchem Block ist denn die Rede?
Sobald in PHP einer Variablen ein String angehängt werden soll:
/* Beisiel 1 */
for ($x=0; $x < 10; $x++) {
$content .= 'Irgend etwas';
}
und diese Variable ist noch nicht deklariert worden, dann hat das eine Meldung zur Folge. Das läßt sich nur mit einer vor dieser Anweisung liegenden Deklaration (= Zuweisung) abstellen:
/* Beisiel 2 */
$content = '';
for ($x=0; $x < 10; $x++) {
$content .= 'Irgend etwas';
}
Wenn jedoch nur eine Zuweisung (= Deklaration) erfolgt, dann gibt es natürlich keine Meldung:
/* Beisiel 3 */
$content = 'Irgend etwas';
ZitatSobald in PHP einer Variablen ein String angehängt werden soll [...]und diese Variable ist noch nicht deklariert worden, dann hat das eine Meldung zur Folge[...]
:BD: Okay, ich dachte zumindest der Block läuft ohne Probleme. Der, den cih gecheckt hatte, basierte nicht auf dem, dich ich verwendet hatte....
ZitatVon welchem Block ist denn die Rede?
http://www.pragmamx.org/Forum-topic-21605-start-msg146189.html#msg146189
Edit:
ich habe da zwar nun noch eine Variabel, aber es funktioniert :thumbup:
Edit: Edit:
Diese Meldung erscheint allerdings nicht, wenn der Block im deaktivierten Zustand über die MX-tabs geladen werden....
:JC_coffee: moin
Ich würde mal einen Blick in die user.php des mxTabs-Downloads (http://www.pragmatized.com/plugin/Downloads/view_download/8) werfen.
<?php
* --------------------------------------------------------------------
* Centerblock mxTabs 1.1 for pragmaMx 0.1.10
* written by (c) 2008 Siggi Braunert, http://www.sb-websoft.com
* --------------------------------------------------------------------
**/
if (!defined("mxMainFileLoaded")) die ("access denied");
error_reporting(0); // falls Warnungen in den Bloecken die Meldung unterdruecken
:
:
Logisch, daß dann ...
ZitatDiese Meldung erscheint allerdings nicht, wenn der Block im deaktivierten Zustand über die MX-tabs geladen werden....
:crazy: :BD:
Hoi :)
ZitatIch würde mal einen Blick in die user.php des mxTabs-Downloads werfen.
Warum?
Die Fehlerbehandlung wird global von pragmaMx geregelt. :crazy: :BD:
Eine solche Fehlerunterdrückung ist unnötig bzw. sogar unsinnig und es kann von keinem Coder/Bastler erwartet werden, sämtliche Dateien nach solchen Fallstricken zu durchsuchen.
@ reddragon
Schau mal hier, evtl. hilft dir das, die Ausführungen von Jörg zu verstehen:
http://de2.php.net/manual/de/language.operators.string.php
Hi :)
abgesehen davon, ob das, was da im Code steht Sinn macht oder nicht ( auch du codest Dinge, die zu seiner Zeit Sinn machen und zu einem späteren Zeitpunkt unsinnig erscheinen) war mein Beitrag diesbezüglich völlig wertfrei, lediglich ein Hinweis, warum es keine Fehlermeldung ausgibt .... :cul:
Zitatund es kann von keinem Coder/Bastler erwartet werden, sämtliche Dateien nach solchen Fallstricken zu durchsuchen
was meinst du, was ich nicht schon für "Fallstricke" in Quellcodes anderer "Bastler/Coder" aufgeknotet habe :puzzled: :BD: Schönes WE :pardon:
ZitatIch würde mal ...
... Logisch, daß dann ...
... :crazy: :BD:
Wertfrei? :gruebel:
Naja, lassen wir's mal so stehen....
auch schönes WE :bye2: