Sponsored Links |
|
||||
Ja das ist mir klar. Um jetzt mal zur Ausgangsstellung zurück zu kommen, die da wäre:
Zitat:
Ich verstehe immer noch nicht, warum ich in diesem speziellen Fall nicht empty() verwenden sollte. Für mich gibt es da nichts was dagegen spricht. |
Sponsored Links |
|
||||
Wir wissen ja nicht, welche Werte erlaubt sind. Denn „empty()“ prüft eben nicht nur, ob die Variable existiert, sondern auch, ob sie einen Wert gleich „false“ besitzt. Dieses „$val == false“ schließt aber neben dem offensichtlichen „false“ auch die Werte „""“ (Zeichenkette der Länge null), „null“, „array()“ (leeres Array), „0“ und „0.0“ (als Zahlentypen) sowie „"0"“ (also 0x30) ein (siehe auch Typenvergleichstabelle). Und auch wenn wir alle Nicht-Zeichenkettenwerte für „$_GET“-Variablen ausschließen können, bleiben so immer noch die Werte „""“ und „"0"“ übrig, wobei Letzteres vielleicht unerwartet ist und zu Fehlern führen kann. Und ob das gewünscht ist, wissen wir eben nicht.
__________________
Markus Wulftange |
|
||||
Den Fall, dass ein leerer String ("") vorhanden sein soll, können wir wohl ausschließen, da Thomas das in seinem Versuch auch getan hat. Bliebe als nur noch "0" übrig, was so ziemlich das ekeligste ist was mit PHP möglich ist.
Ich empfinde es übrigens gerade als Vorteil von empty(), dass sämtliche implizierten "false"-Werte mit abgedeckt sind. Wenn man genau solche Werte erwartet, dann ist empty() natürlich fehl am Platz. Ich glaub wir brauchen darüber nicht weiter diskutieren. Thomas wird wissen was er machen möchte und kann sich dementsprechend die für ihn passende Lösung aus den Antworten hier raussuchen. Ich finde nur die Vorstellung komisch strlen() zu verwenden, da man damit eigentlich die Länge prüft, die man hier gar nicht wissen will. Möglich ist das natürlich, aber das sieht komisch aus. Ist das von Javascript ".length" entlehnt? |
|
||||
Zitat:
Zitat:
PHP-Code:
__________________
Markus Wulftange Geändert von Gumbo (04.06.2008 um 17:29 Uhr) |
|
||||
Hui, das geht ja los hier.
OK, ich bin eine Erklärung schuldig: Beim Erstaufruf der Seite gibbet ja noch keine GET´s - mein Zeug aber braucht welche um die erste Seite laden zu können. Da der Redakteur dazu jede beliebige bestimmen kann, weiss niemand vorher welchen Namen oder id diese hat. So nun, beim erstaufruf wenn keine GET 'name' oder 'bezug' da ist, wird eine Funktion angeschmissen die erforderliche Parameter rauskitzelt und das System damit füttert. Das ist aber nur der erste Teil. Wenn der Besucher nun in einer bestimmten Sprache auf der Seite surft, und den Home Button klickt würde er ja auf die voreingestellte Standard(t) Sprache geworfen werden. Deshalb gebe ich dem Homebutton GET´s für Sprache und das ausgewählte Template mit. Damit mod_rewrite dann noch funkt sieht das so aus: HOST?de-main----.html Ab hier ist dann, nach mod_rewrite, das GET 'name' od 'bezug' gesetzt, aber leer, und obige Funktion läuft nochmal an und schmeisst dann nur die fehlenden Parameter dazu. Aber Inta hat schon recht, vor lauter Notice wegmachen, habe ich die if erstmal falsch geschrieben, das muß ich natürlich total anders abfragen. Mal sehen ob das Notice dann noch da is. Rege Diskussion, freut mich! |
|
||||
Wenn du richtig extrem arbeiten willst, kannst du sogar noch weiter gehen für "sauberen" PHP Code:
PHP-Code:
__________________
“My software never has bugs. It just develops random features ...” » DevShack - die Website des freien Webentwicklers Boris Bojic |
Themen-Optionen | |
Ansicht | |
|
|