switch
Hannes Habermann
<?php
if (file_exists("programm.txt"))
{
}
else
{
print "programm.txt existiert " . "<b>" . "nicht ";
}
$input_file = file("programm.txt");
$i = count($input_file);
for ($n = 0; $n < $i; $n++)
{
$out["$n"] = htmlentities($input_file["$n"]) . "<br>";
}
$qqq = ($out["21"]); // $qqq = "lyellow" oder "red" switch
// gibt das gewünscht Ergibnis an $farbe1
echo $qqq; // Variable wird richtig angezeigt
switch($qq')
{
case 'lyellow': $farbe1 = 'ffffcc'; break;
case 'red': $farbe1 = 'ff0000'; break;
}
echo $farbe1; // keine Ausgabe
?>
Warum bekomme ich so kein Ergebnis?
Re: switch
Hannes schrieb:
> Hannes Habermann
>
> <?php
> if (file_exists("programm.txt"))
> {
> }
> else
> {
> print "programm.txt existiert " . "<b>" . "nicht ";
Wieso kein ! verwenden anstatt else? Wieso den Text zusammensetzen?
> $qqq = ($out["21"]); // $qqq = "lyellow" oder "red" switch
> // gibt das gewünscht Ergibnis an $farbe1
> echo $qqq; // Variable wird richtig angezeigt
> switch($qq')
^ extra nur 2 q?
Wieso verwendest Du keine "sprechenden" Namen?
> Warum bekomme ich so kein Ergebnis?
Entweder Schreibfehler oder sonst sehe ich den Fehler nicht. Ach ja,
motzt er nicht, dass Du die Varible $qq nicht defineirt hast? Was ist an
Fehlerausgaben aktiviert?
Gruss, Markus
--
Sehr zu empfehlen:
http://www.google.ch/ oder .de/ oder .com/ usw.
Re: switch
Markus Grob wrote:
> Hannes schrieb:
>> switch($qq')
> ^ extra nur 2 q?
> Wieso verwendest Du keine "sprechenden" Namen?
Und was hat der ' da zu suchen? Das muss einen Parse Error geben...
Michael
Re: switch
Hannes schrieb:
> if (file_exists("programm.txt"))
> {
> }
> else
> {
> print "programm.txt existiert " . "<b>" . "nicht ";
> }
> $input_file = file("programm.txt");
> (...)
>
> Warum bekomme ich so kein Ergebnis?
Der else-Zweig behandelt den Fall, dass programm.txt nicht existiert. Damit
kann dann file ("programm.txt") auch nicht klappen, bzw. $input_file ist
leer. Entweder Du verschiebst den Block in den if-Teil oder Du negierst die
if-Abfrage: if (!file_exists("programm.txt")).
Du solltest unbedingt alle Fehlermeldungen aktivieren. Da sind noch andere
Fehler im Code.
viele grüße
ralph
Re: switch
Hannes schrieb:
> <?php
> if (file_exists("programm.txt"))
X > {
X > }
X > else
> {
> print "programm.txt existiert " . "<b>" . "nicht ";
[...]
> Warum bekomme ich so kein Ergebnis?
Lösche die ge-ixten Zeilen.
Martin
Re: switch
Hannes schrieb:
> Hannes Habermann
[...]
> Warum bekomme ich so kein Ergebnis?
Was genau hast du an den Antworten von Carsten in deinem anderen Thread
denn nicht verstanden?
Re: switch
Martin Lemke wrote:
> X > {
>
> Lösche die ge-ixten Zeilen.
In Fachkreisen auf als "gekennzeichnet" bekannt? :-)
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: switch
Hannes:
[irgendein Code]
> Warum bekomme ich so kein Ergebnis?
Das echo "Ergenis" fehlt.
--
Mit PHP Kontonummern auf Gültigkeit prüfen:
<http://bav.malkusch.de/>
Re: switch
Hallo Hannes,
Hannes schrieb:
> Hannes Habermann
> Warum bekomme ich so kein Ergebnis?
Ich tippe mal auf ein newline am Ende des Strings. Den bekommst du mit
trim() weg. Wenn die Angaben in separaten Zeilen stehen, wird der
Zeilenumbruch am Ende mit eingelesen.
Mit var_dump($var) erhältst du mehr Informationen zu einer Variablen als
nur mit echo $var. var_dump() gibt zum Beispiel die Anzahl der Zeichen
im String aus, dann merkst du, dass da ein Zeichen mehr ist, als sein
sollte (wenn's die Sache mit dem Zeilenumbruch ist).
Ansonsten sollest du wirklich mal deinen Programmierstil überdenken:
- Statt dem leeren if-Block solltest du besser die Bedingung negieren
(!file_exists("bla.txt"))
- einrückungen machen den code besser lesbar
- die anführungszeichen bei $array["$key"] sind unnötig: $array[$key]
geht genauso und spart die umwandlung in string.
Nochmal zu deinem Problem: In deinem Anwendungsfall wäre ein Array
(statt switch) vermutlich ohnehin die bessere Alternative:
$farben = array('rot' => 'f00', 'lyellow' => 'ffc');
if (array_key_exists($qqq, $farben))
{
$farbe1 = $farben[$qqq];
}
Eine Begrüßung und kurze Anrede wird übrigens als deutlich freundlicher
erachtet und führt damit auch meistens zu produktiveren Antworten ;)
Gruß
David
Re: switch
David Fuhr schrieb:
> Ansonsten sollest du wirklich mal deinen Programmierstil überdenken:
> - Statt dem leeren if-Block solltest du besser die Bedingung negieren
> (!file_exists("bla.txt"))
> - einrückungen machen den code besser lesbar
> - die anführungszeichen bei $array["$key"] sind unnötig: $array[$key]
> geht genauso und spart die umwandlung in string.
Genau. Eventuell sollte man auch die Variablennamen ändern, sodass dein
Quellcode etwas leichter verständlich ist, wenn man erkennt, welche
Variable welchen Sinn hat.
$qqq - $selectetColor
$farben - $allowedColors
$farbe1 - $activeColor
Des weiteren solltest in deinem Quellcode dich etwas an den Standard
halten, was die Sprache betrifft, daher Quellcode sollte in englischer
Sprache geschrieben sein.
> Nochmal zu deinem Problem: In deinem Anwendungsfall wäre ein Array
> (statt switch) vermutlich ohnehin die bessere Alternative:
>
> $farben = array('rot' => 'f00', 'lyellow' => 'ffc');
> if (array_key_exists($qqq, $farben))
> {
> $farbe1 = $farben[$qqq];
> }
else
{
//Irgendeine Farbe, die genommen wird, wenn die
//ausgewaehlte Farbe nicht im Array existiert
$farbe1 = '000';
}
Man sollte nicht vergessen $farbe1 auf jeden Fall einen Wert zu geben,
auch wenn die gewünschte Farbe nicht im Array existiert. Sonst greifst
später auf diese Variable zu und es ist keine Farbe drin.
Man könnte es auch vor der Abfrage machen, würde ich bei Zuweisungen dem
Vorzug geben, da es irgendwann für dich beim Umsteigen auf Java oder
ähnliches leichter wird vom Verständnis mit der Sichtbarkeit. :)
Also so, wenn man alle meine Bedenken mit einbaut:
$allowedColors = array('rot' => 'f00', 'lyellow' => 'ffc');
$activeColor = '000';
if (array_key_exists($selectetColor, $allowedColors))
{
$activeColor = $allowedColors[$selectetColor];
}
> Eine Begrüßung und kurze Anrede wird übrigens als deutlich freundlicher
> erachtet und führt damit auch meistens zu produktiveren Antworten ;)
Empfinde ich persönlich auch als unnötig, aber mache es wegen meiner
guten Erziehung. ^^
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: switch
Christoph Herrmann wrote:
> Des weiteren solltest in deinem Quellcode dich etwas an den Standard
> halten, was die Sprache betrifft, daher Quellcode sollte in englischer
> Sprache geschrieben sein.
Bitte entschuldige, aber das ist Blödsinn! Wenn man das Verlangen nach
Deutscher Namensgebung hat dann steht dem nicht im Wege. Es sei denn Du
kannst mir einen Styleguide zeigen der das so festlegt, der für PHP
gemacht wurde und vom PHP-Team als verbindlich definiert wird.
Da Du das nicht kannst kannst Du auch nicht solche Behauptungen in den
Raum stellen.
Allerdings finde ich Deutsche Namensgebungen meist etwas umständlicher
da sich dadurch in vielen Fällen längere Namen ergeben. Aber das ist
sekundär.
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: switch
Ulf Kadner schrieb:
> Bitte entschuldige, aber das ist Blödsinn! Wenn man das Verlangen nach
> Deutscher Namensgebung hat dann steht dem nicht im Wege. Es sei denn Du
> kannst mir einen Styleguide zeigen der das so festlegt, der für PHP
> gemacht wurde und vom PHP-Team als verbindlich definiert wird.
>
> Da Du das nicht kannst kannst Du auch nicht solche Behauptungen in den
> Raum stellen.
Standard nicht im Sinne von festgeschriebenen Regeln, sondern einfach
vom Allgemeinen her. Wenn hier "Standard" falsch rüber gekommen ist sry,
ersetze es am besten durch... keine Ahnung durch was, mir ist auch
nichts besseres eingefallen. :)
Klar kann man auch deutsche Namensgebung wählen, aber dann hat man immer
eine Mischung aus englischsprachigen und deutschen Codeteilen (außer du
stellst die PHP eigenen Sachen auch um), was die Leserlichkeit doch sehr
viel schwerer macht. Bei den meisten Dingen findet man sich im
englischen auch schneller zurecht ($result ist für mich z.B. eindeutiger
als $ergebnis), von daher würde ich es empfehlen.
Genau: Zu faul oben zu ändern, nimm Empfehlung statt Standard. ;)
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: switch
Christoph Herrmann wrote:
> Standard nicht im Sinne von festgeschriebenen Regeln, sondern einfach
> vom Allgemeinen her.
Das was Du als allgemein bezeichnest würde ich als Deinen persöhnlichen
Geschmack bezeichnen.
Wenn Du das so geschrieben hättest könnte ich Dir sogar zustimmen da ich
das auch so empfinde. Aber das ist irrrelevant wend man im gleichen Zuge
die Worte Regeln + Standard nennt.
> Wenn hier "Standard" falsch rüber gekommen ist sry,
Standard ist klar definiert! Da kann nix falsch rüber kommen.
> Klar kann man auch deutsche Namensgebung wählen, aber dann hat man immer
> eine Mischung aus englischsprachigen und deutschen Codeteilen (außer du
> stellst die PHP eigenen Sachen auch um), was die Leserlichkeit doch sehr
> viel schwerer macht.
Vorallem für Chinesen ;-)
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: switch
Ulf Kadner schrieb:
> Wenn Du das so geschrieben hättest könnte ich Dir sogar zustimmen da ich
> das auch so empfinde. Aber das ist irrrelevant wend man im gleichen Zuge
> die Worte Regeln + Standard nennt.
habe nirgends das Wort Regeln vorher verwendet. ;)
> Standard ist klar definiert! Da kann nix falsch rüber kommen.
Aber ja, ich geb dir Recht, ich habe es einfach falsch formuliert und
auch anders gemeint als ich es geschrieben habe *zugeb*.
>> Klar kann man auch deutsche Namensgebung wählen, aber dann hat man
>> immer eine Mischung aus englischsprachigen und deutschen Codeteilen
>> (außer du stellst die PHP eigenen Sachen auch um), was die
>> Leserlichkeit doch sehr viel schwerer macht.
>
> Vorallem für Chinesen ;-)
Ich hoffe da ist sich jeder einig, dass deutscher Quellcode fehl am
Platz ist, wenn die Möglichkeit besteht, dass auch ausländische nicht
deutsch sprechende Personen daran arbeiten müssen. :)
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: switch
Christoph Herrmann wrote:
> habe nirgends das Wort Regeln vorher verwendet. ;)
| Standard nicht im Sinne von festgeschriebenen Regeln
soso :-)
> Ich hoffe da ist sich jeder einig, dass deutscher Quellcode fehl am
> Platz ist, wenn die Möglichkeit besteht, dass auch ausländische nicht
> deutsch sprechende Personen daran arbeiten müssen. :)
Das könnte sich als kluger Schachzug erweisen. ;-)
MfG, Ulf
--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Re: switch
Ulf Kadner schrieb:
> Christoph Herrmann wrote:
>
>> habe nirgends das Wort Regeln vorher verwendet. ;)
>
> | Standard nicht im Sinne von festgeschriebenen Regeln
>
> soso :-)
meinte im Beitrag vorher von 9 Uhr nochwas. ;)
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: switch
Ulf Kadner wrote:
> ... snipped
>
> Allerdings finde ich Deutsche Namensgebungen meist etwas umständlicher
> da sich dadurch in vielen Fällen längere Namen ergeben. Aber das ist
> sekundär.
Full ACK. Daher empfehle ich chinesisch zu lernen ;)
<code>
$所有网页 = array("网页", "图片", "资讯 ");
for ($文 = 0; $文 <= count($所有网页); $文++)
{
echo $所有网页[$文] . "
";
}
</code>
Joe
PS. Der Code funktioniert tatsächlich (auch wenn Eclipse Fehler in der
Syntax anzeigt)
Re: switch
Joe Scylla schrieb:
> <code>
> $所有网页 = array("网页", "图片", "资讯 ");
> for ($文 = 0; $文 <= count($所有网页); $文++)
> {
> echo $所有网页[$文] . "
";
> }
> </code>
>
> Joe
>
> PS. Der Code funktioniert tatsächlich (auch wenn Eclipse Fehler in der
> Syntax anzeigt)
.... nicht ganz ;)
Notice: Undefined offset: 3 in /pfad/zu/meiner/datei.php on line 9
aber es gibt was aus ;)
Re: switch
David Fuhr wrote:
> Joe Scylla schrieb:
>
>> <code>
>> $所有网页 = array("网页", "图片", "资讯 ");
>> for ($文 = 0; $文 <= count($所有网页); $文++)
>> {
>> echo $所有网页[$文] . "
";
>> }
>> </code>
>>
>> Joe
>>
>> PS. Der Code funktioniert tatsächlich (auch wenn Eclipse Fehler in der
>> Syntax anzeigt)
>
> ... nicht ganz ;)
>
> Notice: Undefined offset: 3 in /pfad/zu/meiner/datei.php on line 9
>
> aber es gibt was aus ;)
Hier wird auch auf jedem kleinen Fehler rumgehackt ;)
Joe
Re: switch
David Fuhr schrieb:
> Joe Scylla schrieb:
>
>> $所有网页 = array("网页", "图片", "资讯 ");
>> for ($文 = 0; $文 <= count($所有网页); $文++)
>> {
>> echo $所有网页[$文] . "
";
>> }
>
> Notice: Undefined offset: 3 in /pfad/zu/meiner/datei.php on line 9
Hmmm ... welche der 5 Zeilen ist denn bei Dir Zeile 9? :-)
Gruß. Claus