misterunknown: ' vs " - ideologisch korrekte Verwendung?

Moin,

$_POST["foo"] oder $_POST['foo']
Beides funktioniert. Gibt es eine ideologisch korrektere Vernwendung? Bei normalen Strings ist es ja meines Wissens völlig wurst.

Grüße Marco

  1. Tach!

    $_POST["foo"] oder $_POST['foo']
    Beides funktioniert. Gibt es eine ideologisch korrektere Vernwendung? Bei normalen Strings ist es ja meines Wissens völlig wurst.

    Geschwindigkeitsunterschiede kann man getrost vernachlässigen. Ich gehe nach der Funktion. Brauch ich die Variablen- und/oder Escapesequenzen-Auflösung, dann " ansonsten '.

    dedlfix.

    1. hi,

      Geschwindigkeitsunterschiede kann man getrost vernachlässigen. Ich gehe nach der Funktion. Brauch ich die Variablen- und/oder Escapesequenzen-Auflösung, dann " ansonsten '.

      Bei langen Strings, die keine Variablen enthalten, ist es immerhin messbar.
      Dazu gibt es irgendwo im Netz testberichte mit über 1.000.000 Durchläufen!

      Ich denke aber, die lesbarkeit macht heutzutage das meiste aus. Und das angesprochene escapen!

      Gruß Niklas

      --
      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
      1. Tach!

        Geschwindigkeitsunterschiede kann man getrost vernachlässigen.
        Bei langen Strings, die keine Variablen enthalten, ist es immerhin messbar.
        Dazu gibt es irgendwo im Netz testberichte mit über 1.000.000 Durchläufen!

        Natürlich ist es messbar - im Laborversuch. Solche Versuche sind aber nicht praxisrelevant. Das Ergebnis einer Stringoperation ist üblicherweise deutlich länger als 1 Byte. 1Mio Durchläufe erzeugen also deutlich mehr als 1Mio Byte an Daten. Soviel erzeugt kein normales Script. Das beschränkt sich auf wenige Stringoperationen und dann ist der Unterschied unmessbar und unspürbar. Selbst auf hochfrequentierten Seiten dürfte eine solche Mikrooptimierung nur wenig bringen - auch im Vergleich zu anderen Maßnahmen.

        dedlfix.

        1. hi,

          ich stimme dir da voll zu. Hab ja auch mim Posting nicht wiedersprochen ;)
          Wenn man bei der Geschwindichkeit optimieren möchte, kann man das sicher übergehen. Da gibts weit schlimmere Punkte bei ' und " die entscheidend sind (wie das angesprochene fehlinterpretieren von $team). Und die Langsamkeit von Seiten kommt meist eher noch durch die vielen Schleifen (teils extrem unnötigen) und die Datenbanken (teils nicht optimalen).

          Das es einen Geschwindichkeitsunterschied von ' zu " geben KANN sollte man nur einfach nicht verschweigen.

          Hauptgrund für ' oder " ist wie gesagt die interpretation der Zeichen und die nervige maskiererei selbiger.

          Gruß Niklas

          --
          Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
      2. Bei langen Strings, die keine Variablen enthalten, ist es immerhin messbar.

        Ja da schon.

        Dazu gibt es irgendwo im Netz testberichte mit über 1.000.000 Durchläufen!

        Aber es gibt genug Benchmarks die zeigen, dass Double-Quoted strings schneller behandelt werden, wenn man Variablen tatäschlich benötigt - das ist auch messbar, aber eben wie dedlfix sagt absolut vernachlässigbar.

        http://www.phpbench.com/
        http://www.soeren-hentzschel.at/technik/programmierung/2011/01/13/single-quotes-vs-double-quotes-in-php-strings/

        Das hat aber damit zu tun, dass die Verkettungsoperatoren "viel" Zeit fressen

  2. @@misterunknown:

    nuqneH

    Bei normalen Strings ist es ja meines Wissens völlig wurst.

    Nein, das ist es nicht.

    Verwende wenn möglich einfache Anführungszeichen.

    Qapla'

    --
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    1. Moin,

      Nein, das ist es nicht.
      Verwende wenn möglich einfache Anführungszeichen.

      Ich lese aus der Beschreibung nicht heraus, dass man möglichst einfach Anführungszeichen verwenden soll. Bei einfachen Anführungszeichen werden eben nur weniger Escape-Sequenzen interpretiert.
      Gibts da eine spezielle Begründung auf die du abzielst?

      Grüße Marco

      1. Gibts da eine spezielle Begründung auf die du abzielst?

        Je nach Benchmark sind Single Quotes schneller oder umgekehrt obwohl es logisch erscheint, dass das Interpretieren der Escape-Sequenzen Zeit benötigt - in der Praxis ist dieser Unterschied aber nicht relevant.

        Es ist nur so, dass man leichter unabsichtlich einen Fehler macht, wenn etwas interpretiert wird, was eigentlich wortlich zu nehmen war

        echo "Langsame habe ich das gefühl, dass uns Valve mit $team nur das Geld aus der tasche ziehen will";

        Ist damit jetzt die Variable $team gemeint oder ist die Verballhornung von "Steam" wörtlich zu nehmen? Der PHP-Interpreter weiß das nicht und über solche Fallstricke stolpert man gelegentlich und sucht dann stundenlang, warum etwas nicht funktioniert :)

        1. Moin,

          Es ist nur so, dass man leichter unabsichtlich einen Fehler macht, wenn etwas interpretiert wird, was eigentlich wortlich zu nehmen war

          echo "Langsame habe ich das gefühl, dass uns Valve mit $team nur das Geld aus der tasche ziehen will";

          Ok, das ergibt Sinn.

          Grüße Marco

  3. hi,

    für solche sachen:

      
    $a = 'test '.$b.' xyz';  
    $a = "test $b xyz ";  
    
    

    Die Ausgabe ist die selbe nur:
    Bei ' wird NICHT nach Variablen gesucht, die ersetzt werden sollen.
    Das heißt der Interpreter kann da einfach rüberrennen ohne was damit zu tun.
    Bei " sucht er eben danach. Sachen wie HTML-Anweisungen href="/test" müsste man mit \ escapen damit er diese Ignoriert, was natürlich richtig unübersichtlich wird.

    Das Selbe problem hast du bei ' wenn es um Javascript geht. Dort braucht man das Zeichen auch hin und wieder mal. Daher wechsel ich die Zeichen im Code in manchen Fällen auch mal ab, um das Escapen zu sparen.

    Bei Emails verwende ich immer nur " da so die Zeilenschaltung und Leerzeichen korrekt erhalten bleiben. (wenn ich kein HTML verwenden darf ...)

    Sauberer ist somit also '

    (ach ja, ein normaler editor zeigt dir das dann auch viel besser grafisch an!)

    Gruß Niklas

    --
    Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.