zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden error_reporting(E_ALL);

Antwort
 
LinkBack Themen-Optionen Ansicht
  #31 (permalink)  
Alt 04.06.2008, 16:06
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Um allein die Existenz der Variable zu prüfen, reicht „isset($var)“ aus und ist dafür auch erforderlich. Wenn jedoch zusätzlich die Bedingung „$var == true“ erfüllt sein soll, kann hier zu „!empty($var)“ gegriffen werden. Aber auch nur genau dann. Denn wenn die zweite Bedingung nicht erfüllt sein muss, ist „!empty($var)“ in zu viele Fällen ebenfalls „false“, da „empty($var)“ eben nicht mit „!isset($var)“ äquivalent ist.
__________________
Markus Wulftange
Mit Zitat antworten
Sponsored Links
  #32 (permalink)  
Alt 04.06.2008, 16:17
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Ja das ist mir klar. Um jetzt mal zur Ausgangsstellung zurück zu kommen, die da wäre:
Zitat:
Zitat von paracelsus Beitrag anzeigen
Die Indexe 'name' und 'bezug' sollen, um die funktion auszulösen nicht gesetzt sein oder keinen Wert haben.
Schau ich mir die Werte an so erwarte ich, dass dort ein String ankommt. Dafür wäre dann empty() perfekt geeignet.

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.
Mit Zitat antworten
Sponsored Links
  #33 (permalink)  
Alt 04.06.2008, 16:33
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

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
Mit Zitat antworten
  #34 (permalink)  
Alt 04.06.2008, 16:58
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

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?
Mit Zitat antworten
  #35 (permalink)  
Alt 04.06.2008, 17:25
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Zitat:
Bliebe als nur noch "0" übrig, was so ziemlich das ekeligste ist was mit PHP möglich ist.
Auch „0 == "foo"“ ergibt „true“. Es kommt eben auch immer auf die verglichenen Typen an.

Zitat:
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?
Vermutlich ist es der Versuch, „trim()“ doch noch im Kontext einer weiteren Funktion nutzen zu können, da „empty()“ ja eine Variable erwartet und „trim($val) == ""“ vielleicht „irgendwie komisch“ aussieht. Also beispielsweise:
PHP-Code:
if (strlen(trim($val))) {
    
// …

__________________
Markus Wulftange

Geändert von Gumbo (04.06.2008 um 17:29 Uhr)
Mit Zitat antworten
  #36 (permalink)  
Alt 04.06.2008, 17:50
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

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!
Mit Zitat antworten
  #37 (permalink)  
Alt 05.06.2008, 00:51
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Wenn du richtig extrem arbeiten willst, kannst du sogar noch weiter gehen für "sauberen" PHP Code:

PHP-Code:
error_reporting(E_ALL | (defined('E_STRICT') ? E_STRICT 0)); 
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #38 (permalink)  
Alt 05.06.2008, 08:36
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Ach Du liebes Lieschen...
Der mokiert mktime meines Eventkalenders, ich soll mich nicht auf die Systemzeit beziehen...

Danke Boris!
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 13:07 Uhr.