Neuanfang
Stahl Florian
- php
0 Andi0 Felix Riesterer
So, habe nach langer zeit nochmal neu angefangen PHP zu lernen, bin aber total am anfang und habe ein kleines problem.
Was mache ich hier falsch:
<?php
$zahl = 2;
$ha = hart;
if ($zahl > 0)
{echo "hallo $ha";};
else {echo "hallo ich bin da";};
?>
Da kann mir doch sicher jemand weiterhelfen.
Hallo Florian
Schau dir mal diese Stelle an:
$ha = hart;
Fehlen da nicht die Anführungszeichen?
gruss
Andi
Hallo Florian
Schau dir mal diese Stelle an:
$ha = hart;
Fehlen da nicht die Anführungszeichen?
meinst du $ha = "hart"; ?
geht net, der feler liegt in zeile 18 sagt der browser
das ist diese zeile:
else {echo "hallo ich bin da";};
Moin!
else {echo "hallo ich bin da";};
Auch hier gehört das zweite Semikolon nicht hin. Lies bitte auch hier: https://forum.selfhtml.org/?t=123052&m=792006
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Lieber Stahl Florian,
<?php
$zahl = 2;
$ha = hart;
hier wird eine Konstante "hart" verstanden...
if ($zahl > 0)
{echo "hallo $ha";};
das Semikolon beendet die komplette (meines Wissens) if-Geschichte, sodass das else nimmer greift
else {echo "hallo ich bin da";};
?>
Liebe Grüße aus Ellwangen,
Felix Riesterer.
if ($zahl > 0)
{echo "hallo $ha";};
das Semikolon beendet die komplette (meines Wissens) if-Geschichte, sodass das else nimmer greift
danke, dass war das problem
Moin!
if ($zahl > 0)
{echo "hallo $ha";};
das Semikolon beendet die komplette (meines Wissens) if-Geschichte, sodass das else nimmer greift
Das tut es nicht.
if (1==2)
{
# if Zweig, der aus mehreren Anweisungen besteht:
echo "Eins ist gleich Zwei<br>";
echo "(1==2)<br>";
}
else
{
# else Zweig, der aus mehreren Anweisungen besteht:
echo "Eins ist nicht gleich Zwei<br>";
echo "(1!=2)<br>";
}
danke, dass war das problem
Nein, daran kann es nicht gelegen haben.
$ha = hart; sollte zumindest zu einer Warnung führen, wenn es die Konstante hart nicht gibt. Übernommen wird dann tatsächlich der Name der inexistenten Konstante als String.
Wenn nicht, dann solltest Du in der PHP die Warnungen einschalten:
error_reporting = E_ALL
Mit dieser für ein Programmier- oder Lernsystem brauchbaren Einstellung bekommts Du eine Fehlermeldung wie:
Notice: Use of undefined constant hart - assumed 'hart' in test.php on line 12
Auf "Produktionssystemen" sind diese Warnungen aus womöglich guten Gründen oft abgeschaltet: Der Benutzer soll nicht bemerken, dass der Programmierer nichts taugt.
Warum taugt er nichts? Ein string wurde nicht als string übergeben. Wenn jetzt irgendjemand 100 Zeilen über Deinem $ha = hart;
ein: define ('hart', 'weich');
einfügt, dann suchst Du tagelang, warum da "weich" ausgegeben wird.
Hier also was zum spielen:
<?php
define ('hart', 'weich');
$ha=hart;
echo $ha;
?>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
danke, dass war das problem
Nein, daran kann es nicht gelegen haben.
Doch, Du hattest Recht, das zweite Semikolon (Das ich wegen des augenfälligen Fehlers übersehen habe...) verursachte ein zusätzliches Problem.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
echo $begrüßung;
das Semikolon beendet die komplette (meines Wissens) if-Geschichte, sodass das else nimmer greift
Das tut es nicht.
Es kommt drauf an:
Variante 1:
if (bedingung)
eine_anweisung;
else
eine_andere_anweisung;
Variante 2:
if (bedingung)
{
mehrere;
Anweisungen;
}
else {
mehrere;
andere;
Anweisungen;
}
Man kann das auch mischen
if (bedingung)
eine_anweisung;
else {
mehrere;
andere;
Anweisungen;
}
Wenn nicht, dann solltest Du in der PHP die Warnungen einschalten:
error_reporting = E_ALL
Hier sollte einem Anfänger erklärt werden, dass diese Syntax nur in der php.ini funktioniert. Man kann das auch im Script setzen: error_reporting(E_ALL); und in der .htaccess (Beispiele im Handbuch)
echo "$verabschiedung $name";
Moin!
Wenn nicht, dann solltest Du in der PHP die Warnungen einschalten:
error_reporting = E_ALL
Hier sollte einem Anfänger erklärt werden, dass diese Syntax nur in der php.ini funktioniert. Man kann das auch im Script setzen: error_reporting(E_ALL); und in der .htaccess (Beispiele im Handbuch)
Das wollte ich wohl auch :(
Scheinbar waren meine Fingerchen zu schnell als ich nach 'PHP' das '.ini' tippte. Dann macht der obige Satz auch Sinn. Ich danke Dir für die Klarstellung, ich hab den Typo bisher übersehen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
if (bedingung)
eine_anweisung;
else
eine_andere_anweisung;
Aus methodischen Gründen habe ich eine tiefe Abneigung gegen diese Schreibweise. (Wie übrigens gegen jede unnötige Verkürzung von Quelltexten.) Ich halte sie für Fehlerproduzierend. Deshalb schreibe ich immer die komplette Syntax mit den geschweiften Klammern. Manchmal ist der Kandidat ohne Schweif der Teufel.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®