php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-11-2009, 10:02
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard Verständnisfrage zur Bedingungsnotation in Schleifen

Hallo liebe PHP-Gemeinde,
in letzter Zeit stoße ich häufiger auf mir bislang unverständliche Bedingungskonstrukte in Schleifen. Hierbei wird statt der mir bislang bekannten Notation z. B. if (Variable == Wert) nun so notiert: if (Wert == Variable).
Ist das Ganze eine Laune der Natur oder hat es einen tieferen Sinn, der sich mir nur nicht zu erkennen geben will?

Danke für alle Antworten im Voraus!
Mit Zitat antworten
  #2 (permalink)  
Alt 18-11-2009, 10:07
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Damit vermeidet man einen klassischen Fehler. Ein
PHP-Code:
if ($bla 'blubb'
funktioniert einwandfrei, ist aber falsch, da nur auf eine Zuweisung geprüft wird. Dagegen wirft ein
PHP-Code:
if ('blubb' $bla
einen Fehler aus und macht uns darauf aufmerksam, dass wir wieder mal ein Gleichheitszeichen vergessen haben.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 18-11-2009, 10:11
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ahh okay.....aber Readability geht schon ein bisschen krachen oder ist es nur eine Frage der Gewöhnung?
Mit Zitat antworten
  #4 (permalink)  
Alt 18-11-2009, 10:15
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von KillUrMind Beitrag anzeigen
Ahh okay.....aber Readability geht schon ein bisschen krachen oder ist es nur eine Frage der Gewöhnung?
Ist reine Gewöhnung. Ich schreib das nur noch so.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 18-11-2009, 10:21
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Ich schreibs nicht so, aber solche Vergleiche habe ich auch schon seit Jahren nicht mehr gemacht.

Beispiele:

PHP-Code:
if($this->getFoo() == $this->getRequest()->getParam('foo')) {} // kann gar nicht zuweisen

if(self::TOKEN == $this->getRequest()->getParam('provided')) {} // kann gar nicht zuweisen

if($this->hallaballuza()) {} // und hier eh nicht 

Geändert von unset (18-11-2009 um 10:25 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 18-11-2009, 10:26
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Alles klar. Ansich gar nicht mal so dumm....mal schauen ob ich mich daran gewöhnen kann^^


@unset: Was meinst du mit "solchen" Vergleichen? Generell (wie denn sonst?) oder nur die "neuere" Form?

@Kropff: Schreibst du dann jetzt sämtliche Vergleiche so oder nur die Gleichheits-Vergleiche?

Geändert von unset (18-11-2009 um 10:35 Uhr) Grund: Doppelpost
Mit Zitat antworten
  #7 (permalink)  
Alt 18-11-2009, 10:35
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Schau dir halt die Beispiele an … es kann gar nicht zu einer Zuweisung kommen …
Mit Zitat antworten
  #8 (permalink)  
Alt 18-11-2009, 10:35
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von unset Beitrag anzeigen
[...]

PHP-Code:
if($this->getFoo() == $this->getRequest()->getParam('foo')) {} // kann gar nicht zuweisen

if(self::TOKEN == $this->getRequest()->getParam('provided')) {} // kann gar nicht zuweisen

if($this->hallaballuza()) {} // und hier eh nicht 
Du meinst hier, dass die Reihenfolge egal ist oder? Sonst kann ich das "zuweisen" nicht deuten.
Wenn ja, dann klar, aber bei konstruierenden Methoden-Calls und deren Resultatüberprüfung möchte ich das Ganze bei "okay" ja nicht nochmal callen müssen, sondern den Wert aus der zwischengespeicherten und zum Vergleich herangezogenen Variable nutzen.
Mit Zitat antworten
  #9 (permalink)  
Alt 18-11-2009, 10:39
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von KillUrMind Beitrag anzeigen
Wenn ja, dann klar, aber bei konstruierenden Methoden-Calls und deren Resultatüberprüfung möchte ich das Ganze bei "okay" ja nicht nochmal callen müssen, sondern den Wert aus der zwischengespeicherten und zum Vergleich herangezogenen Variable nutzen.
Verstehe ich nicht. Was meinst du genau mit konstruiert? Zusammengeschraubte Methodennamen, die du dynamisch aufrufst? Und selbst wenn: Warum solltest du die nicht noch einmal aufrufen? Und bitte nicht mit der Performance-Keule kommen
Mit Zitat antworten
  #10 (permalink)  
Alt 18-11-2009, 10:48
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von KillUrMind Beitrag anzeigen
@Kropff: Schreibst du dann jetzt sämtliche Vergleiche so oder nur die Gleichheits-Vergleiche?
Ich mache das auch nur dann, wenn obiger Fehler auftauchen könnte. Ich habe allerdings im Gegensatz zu unset noch mit einem nicht unerheblichen Teil prozeduraler Programmierung zu tun (Altlasten, xtCommerce, etc.). Bei konsequenter OOP fällt mir auf die Schnelle nur die Prüfung auf boolsche Werte ein.
PHP-Code:
if (true === $this->getSomething()) 
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #11 (permalink)  
Alt 18-11-2009, 11:10
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von unset Beitrag anzeigen
Verstehe ich nicht. Was meinst du genau mit konstruiert? Zusammengeschraubte Methodennamen, die du dynamisch aufrufst? Und selbst wenn: Warum solltest du die nicht noch einmal aufrufen? Und bitte nicht mit der Performance-Keule kommen
Ich meine Funktionen die mir einen Wert zurückliefern mit dem ich dann weiterarbeiten möchte.
Mit Zitat antworten
  #12 (permalink)  
Alt 18-11-2009, 11:26
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Meinst du sowas?:

PHP-Code:
while ($row mysql_fetch_object($resultHandle)) {
    
// ...

Das ist wieder was anderes, weil es kein Vergleich ist.

Für Vergleiche gilt: wenn du Konstanten, Literale oder Getter-Aufrufe links notierst, kannst du nicht aus versehen = statt == verwenden, ohne dass der Parser meckert.

Gruß,

Amica
Mit Zitat antworten
  #13 (permalink)  
Alt 18-11-2009, 13:11
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein, was ich meinte ist sowas:
PHP-Code:
function foo($x null) {
   return (isset(
$x) && is_int($x)) ? $x+=$x;
}

// "schlecht"; @unset: klar keine zuweiseung
if (== foo(1)) {
   echo 
foo(foo(1));
}

// "besser"
$tmp foo(1);
if (
== $tmp) {
   echo 
foo($tmp);


Geändert von KillUrMind (18-11-2009 um 13:27 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 18-11-2009, 13:15
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Wie ich schon sagte, solche Vergleiche sind mir schon lange nicht mehr untergekommen. Irgendwo wird die 2 herkommen …*und wenn es hardcoded ist, dann stimmt generell schon was nicht … und warum man den anderen Vergleichswert erstmal in einer Variable packen will, erschließt sich mir nicht.
Mit Zitat antworten
  #15 (permalink)  
Alt 18-11-2009, 13:24
KillUrMind
 Registrierter Benutzer
Links : Onlinestatus : KillUrMind ist offline
Registriert seit: Jan 2008
Ort: Berlin
Beiträge: 111
KillUrMind ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum? Ich meine, wenn ich z. B. für eine Aktion privilege states einer Gruppe abfrage fällt mir nicht ein, wie man es sonst machen sollte. Außer sie sind eben selbst wieder dynamisch angelegt okay.
Zum Zwischenspeichern: Im Bsp. mag es ja noch gehen, aber wenn es umfangreichere Methoden sind und sich diese in einer Applikation häufen, bzw. in einer Schleife called werden, dann ist es ein umgänglicher Performance-Verlust, sofern sie länger als eine Zuweisung brauchen. Oder liege ich da falsch?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verständnisfrage alexeddie PHP Developer Forum 11 12-03-2008 09:54
CSS Verständnisfrage Gabriel86 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 8 27-11-2006 12:44
verständnisfrage php hopsekey PHP Developer Forum 4 14-09-2005 11:39
[CSS] verständnisfrage Wurzel HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 8 12-02-2004 16:18
verständnisfrage Realmaker BRAINSTORMING PHP/SQL/HTML/JS/CSS 21 23-10-2003 14:02

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:25 Uhr.