Hallo,
darf man keine Rechnungen innerhalb einer Stringdeklaration anstellen?
doch, sicher. Ausdrücke lassen sich beliebig verschachteln, solange sie typkompatibel sind (oder entsprechend umgewandelt werden können). Sogar die Zuweisung innerhalb eines echo-Statements, die du hier zeigst, ist erlaubt, wenn auch sehr ungewöhnlich.
echo $acttreffer = '<p>xxx'.$_GET['s'].' xxx '.($_GET['s']*1)+($GLOBALS ['conf_userresults']*1).' von: '. number_format($GLOBALS['treffergesamt'],0,',','.').'</p>';
Mal abgesehen davon, dass du den Gesamtausdruck hier im Posting-Text mit einem Zeilenumbruch auseinandergerissen hast: Ist das dein exakter Quellcode? Kein Abschreibfehler? Denn der Code ist formal korrekt.
Ich drösel das mal auf:
echo $acttreffer =
'<p>xxx'
. $_GET['s']
. ' xxx '
. ($_GET['s']*1)+($GLOBALS['conf_userresults']*1)
. ' von: '
. number_format($GLOBALS['treffergesamt'],0,',','.')
. '</p>';
Jetzt sieht man auch, dass da eine Addition zweier numerischer Werte in einer Stringverkettung steht. Was bindet stärker: Stringverkettung oder Addition? Ich würde den numerischen Teilausdruck mal klammern.
Wenn ich aber das einzeln deklariere, dann gehts:
$tmp_vonbis = ($_GET['s']*1)+($GLOBALS['conf_userresults']*1);
Das würde mich in meiner Ahnung bestärken.
Ach ja, keine Fehlermeldung wird ausgegeben, nur beim Testen habe ich mal das versucht:
echo $acttreffer = '<p>xxx'.$_GET['s'].' xxx '.($_GET['s']*1)+5.' von: '. number_format($GLOBALS['treffergesamt'],0,',','.').'</p>';
Das mag er auch nicht dann gibts Syntaxfehler.
Äh, natürlich: Der Teilausdruck "5." wird als Fließkommazahl interpretiert, und dahinter fehlt dann der nächste Operator. Ein Leerzeichen an der richtigen Stelle wirkt Wunder. ;-)
Ciao,
Martin
Zwei Stammtischbrüder:
Hier steht, dass laut Statistik über 60 Prozent aller Ehefrauen fremdgehen.
Was soll ich mit dieser Information? Ich brauche Namen, Fotos, Telefonnummern ... !