muenzchen: " oder '?

Hallo,

Variablen in " werden ja geparst, in ' aber nicht.
Ich habe bis jetzt nie daran gedacht und immer zb. geschrieben: "Das ist ein ".$size." Ball";

Ich habe also aufgrund der Übersichtlichkeit meine Variablen sowieso immer angeknüpft. Also müsste es eigentlich effektiver sein, wenn ich es so schreibe: 'Das ist ein '.$size.' Ball';

Da PHP dann nicht extra nach Variablen in den ' sucht müsste das Skript ja eigentlich schneller ablaufen, oder?

MfG, muenzchen

  1. Hallo, muenzchen!

    http://forum.de.selfhtml.org/archiv/2004/4/78999/
    http://forum.de.selfhtml.org/archiv/2003/8/54141/

    freundl. Grüsse aus Berlin, Raik

    --
    die Schläge, die Du bereitwillig hinnimmst, werden Dir eine größere Hilfe im Leben sein, als die, die Du für ungerechtfertigt ablehnst; denn einestages wirst auch Du die Fürsorge und Hilfe darin erkennen.
    (c)XaraX http://forum.de.selfhtml.org/archiv/2004/4/77523/#m447546
    1. Hallo,

      Danke!

      MfG, muenzchen

  2. Hi,

    bitte benenn Dein Betreff mal sinnvoller, danke.

    Da PHP sowieso nicht in '' nach Variablen sucht, läuft Dein Script auch nicht durch die Ausklammerung dieser schneller.
    Selbst bei eingebetteten Vars in "" Strings wird das Script nicht langsamer, weil der PHP Parser da drüberfliegt und nicht essenziell nach Variablen sucht.

    Ein deutlicher Unterschied möchte ich nicht verzeichnet wissen.

    Gruss
    Stefan

    1. Hallo, Stefan!

      Selbst bei eingebetteten Vars in "" Strings wird das Script nicht langsamer, weil der PHP Parser da drüberfliegt und nicht essenziell nach Variablen sucht.

      irrtum. siehe den zweiten link in meinem anderen posting hierzu.

      freundl. Grüsse aus Berlin, Raik

      --
      die Schläge, die Du bereitwillig hinnimmst, werden Dir eine größere Hilfe im Leben sein, als die, die Du für ungerechtfertigt ablehnst; denn einestages wirst auch Du die Fürsorge und Hilfe darin erkennen.
      (c)XaraX http://forum.de.selfhtml.org/archiv/2004/4/77523/#m447546
    2. Ein deutlicher Unterschied möchte ich nicht verzeichnet wissen.

      Man lernt nie aus... ;)

      Danke @ Raik

      Gruss
      Stefan

  3. Halihallo muenzchen

    Da PHP dann nicht extra nach Variablen in den ' sucht müsste das Skript ja eigentlich schneller ablaufen, oder?

    In Perl ist das absolut zu bejahen[1]. Bei PHP wahrscheinlich auch.
    Zu sagen ist noch, dass der Operator '.' bei wohl beiden Sprachen
    sehr viel langsamer ist, da die double-quote-strings über eine
    einzelne (ggf. auch mehrere, aber eben in einem "Aufwasch") C-
    Routine aufgelöst werden. Der .-Operator wird in Perl IMHO in
    einen eigenständigen Opcode umgewandelt (also mehrere getrennt
    ausgeführte C-Routinen). Wobei ich mir jetzt ausdenken könnte, dass
    dies der Tree-Optimizer optimiert... Fakt ist und bleibt: Bei Perl
    zumindest ist der '.'-Operator langsamer als ein double-quote String
    und diese sind langsamer als single-quote Strings.

    Zusammenfassung:  (zumindest bei Perl)
    schnell                           mittel           langsam
    single-quote (String-Konstante)   double-quote     .-Operator mit
                                                       Single-Quote
                                                       noch langsamer mit
                                                       Double-Quote

    [1] _Ohne_ Verwendung von '.'-Operatoren! - Also reine String-
    Konstanten.

    Viele Grüsse

    Philipp

    --
    The only program that runs perfectly every time, is a virus.
    1. Hallo Philipp,

      Zusammenfassung:  (zumindest bei Perl)
      schnell                           mittel           langsam
      single-quote (String-Konstante)   double-quote     .-Operator mit
                                                         Single-Quote
                                                         noch langsamer mit
                                                         Double-Quote

      Bei PHP ist es anders, siehe auch meinen Archiv-Link.

      schnell                             mittel           langsam
      -----------------------------------------------------------------------
      Single-Quote                        .-Operator mit   Double-Quote mit
      Double-Quote ohne Variable          Single- oder     Variable
                                          Double-Quote

      Viele Grüße,
      Christian

      1. Halihallo Christian

        Bei PHP ist es anders, siehe auch meinen Archiv-Link.

        Habe ich gelesen und es hat mich erstaunt. Hier wird IMHO der
        Unterschied zwischen PHP/Perl sichtbar. Während bei Perl der .-
        Operator über einen "Opcode" ausgeführt wird (wie gesagt, bin ich mir
        hier nicht 100% sicher; auf jeden Fall habe ich keinen direkten
        opcode dafür finden können), wird bei PHP vielleicht auf eine String-
        Concattenation Funktion zurückgegriffen, welche schneller ist, als
        in einem String alle sichtbaren Variablen zu ersetzen.

        Egal, ich rate hier nur; es entzieht sich meinem Wissen. Aber ich
        grüble nunmal sehr gerne darüber nach :-)

        Danke für die Analyse. Interessant.

        Viele Grüsse

        Philipp

        --
        The only program that runs perfectly every time, is a virus.