kostenloser Webspace werbefrei: lima-city


Richtig/ sauber PHP coden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fvg

    fvg hat kostenlosen Webspace.

    Hallo,
    ich habe ein paar Fragen:
    - Wann Benutzt man ' (Apostroph)
    - Wann Benutzt man " (Anführungszeichen)
    - Wann baut man Leerzeilen ein
    - Wie ist das mit dem Einzug

    1)
    Wie ist es hier richtig?
    <?php
    echo "Variante 1";
    echo 'Variante 2';
    ?>


    2)
    Wie hier?
    <?php
    $var = "Variante 1";
    $var = 'Variante 2';
    
    echo "$var"; // Variante 1
    echo '$var';  // Variante 2
    echo $var;   // Variante 3
    
    ?>


    3)
    Und benutzt man
    $_GET["user"]
    // oder
    $_GET['user']
    // oder
    $_GET[user]

    ?

    Bis jetzt habe ich immer 4 Leerzeichen verwendet, ist das richtig?
    Beispiel...
    <?php
    if (isset($var)) {
        // Tu das...
    }
    ?>


    Vielleicht wisst ihr das ja...

    mfg


    Beitrag zuletzt geändert: 17.6.2009 13:33:32 von fvg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Zu 1.)
    Ist eigentlich recht egal. Angenehmer sind aber die einfachen Anführungsstriche, da man innerhalb derer, auch doppelte Anführungsstriche verwenden kann, ohne diese zu escapen.

    Zu 2.)
    Variante 3 der Ausgabe ist richtig

    Zu 3.)
    Eigentlich egal, ob Variante 1 oder 2

    Das mit den Leerzeichen bei 4.) verstehe ich nicht so recht. Da reicht doch eigentlich eins aus!
  4. karpfen schrieb:
    Zu 1.)
    Ist eigentlich recht egal. Angenehmer sind aber die einfachen Anführungsstriche, da man innerhalb derer, auch doppelte Anführungsstriche verwenden kann, ohne diese zu escapen.

    Zu 2.)
    Variante 3 der Ausgabe ist richtig

    Zu 3.)
    Eigentlich egal, ob Variante 1 oder 2

    Das mit den Leerzeichen bei 4.) verstehe ich nicht so recht. Da reicht doch eigentlich eins aus!


    Ist nicht alles korrekt, desshalb:




    Bei 1. ist es egal, ich nehme jeodch meistens die einfachen Anführungszeichen ('), da man dort jedes Zeichen verwenden kann, man muss nur das ' selbst escapen, bei den doppelten (") muss man extrem viel escapen.


    Bei 2. würde ich die Vairbale auch mit den einfachen Anführungszeichen definieren, aber die Ausgabe funktioniert nur mit den doppelten Anführungszeichen oder nur die Variable. Man sollte Variablem aber immer einzeln schreiben und mit dem Verkettungsoperator (.) an den Text binden.


    Beim 3. ist alles möglich, ich verwende aber immer das mittlere. Beim unteren kann es probleme geben, falls das Wort ein Konstanze ist.


    Das letzte ist korrekt, 4 Leerzeichen machen fast alle, ob man das macht oder nicht ist PHP allerdings egal.





    mfg drafed-map

    Beitrag zuletzt geändert: 17.6.2009 13:43:59 von drafed-map
  5. e********l

    zu 1) Wenn du einen Performance Fetisch hast, dann nutze nach Möglichkeit immer die einfachen Anführungsstriche. Bei denen fallen ein paar PHP interne Befehle weg, die bei den doppelten Anführungsstrichen noch notwendig wären. Aber das bewegt sich im Mikrosekunden-Bereich.

    zu 2) Zur Ausgabe von Variable solltest du die dritte Variante wählen. Wenn du Texte und Variablen mischen willst solltest du die Strings concattinieren.
    Zb. echo 'Ich bin ein Text mit dem Inhalt: '.$meinInhaltsVariable.' daher kommt.';

    zu 3) Nutze die Variante mit einfachem Anführungsstrichen nach Möglichkeit. Es fallen wieder interne Operationen weg und ist meiner Meinung nach auch eher als Array zu erkennen.

    @Leerzeichen: In HTML werden mehrfache Leerzeichen als ein einzelnes interpretiert. Beim coden solltest du einfach auf einen leserlichen Einzug achten.

    Ansonsten beinhält sauberes programmieren vor allem, dass du Variablen erzeugst wenn du sie benötigst und dann zuweist.
    Zb. sieht man oft das jmd. ein Array in einer Schleife füllt, das aber vorher gar nicht initialisiert wurde. PHP wird dann für gewöhnlich eine Warnung raus und je nach Projektgröße können solch "auftauchende Variablen" auch zu Problemen in der Logik führen.
  6. Generell ist zu sagen:

    - einfach Anführungsstriche dann, wenn keine Variable dazwischen steht. -> Script wird etwas schneller abgearbeitet, da alles dazwischen nicht nochmal geparst werden muß.

    - bei $_GET usw. würde ich ebenfalls einfache Anführungszeichen verwenden, weil siehe oben.

    - je nach Geschmack entweder:
    echo 'Angemeldet seit: '.$x.' Tagen';
    oder
    echo "Angemeldet seit: $x Tagen";

    Ich selbst bevorzuge erstere Variante, weil dann das Syntax Highlighting bei Arrays korrekt angezeigt wird ;-)

    - für die Einrückung gibt es keinen festen Standard... allerdings haben sich 4 Zeichen oder Tab eingebürgert


    Grüßle
  7. Heyho
    http://www.drweb.de/magazin/schneller-php-schneller/ hier sind ein paar Tips, wie du mit PHP schneller coden kannst, da es sich aber um Millisekunden handelt und das bei nur sehr sehr großen Projekten wichtig ist, denke ich ist es dir überlassen, wie du programmieren willst. Wenn du alleine an etwas Kleinem programmierst, denke ich, dass es sinnvoll ist, dass du dich in Code zurechtfindest.
  8. e********l

    $a = 5;
    $b = 10;
    
    $c = ($a < $b ? ($b | $a) : ($a << 1 > $b ? $b - $a : $b >> 1) : $b + $a ^ $b);

    Ein schönes Beispiel wie man es nicht machen sollte? Na wer rechnet jetzt $c aus? ^^
  9. Also erstmal etwas, was du nie machst:
    "Hallo $var"
    Schreibe NIE eine Variable in einen String, nie und außnahmslos. Das ist nicht Geschmackssache, einfach nie.
    Dann. Meistens wirst du, wenn du obige Regel beachtest, die ' preferieren. Aus dem Grund, dass du dir bei Quellcodeausgabe die \n s ersparen kannst und du zusätzlich garnicht in Versuchung gerätst Regel 1 zu brechen.

    @devil: Hm... ich verstehe das nicht ganz... Was macht das dritte : da, wenn es nur zwei ? gibt?
    Aber wenn ich das nicht beachte, dann ist c = 10 | 5, also 1010 | 0101, also 1111, also 15.
  10. e********l

    Aua, ja, voll den Fehler reingehauen..

    $a = 5;
    $b = 10;
    
    $c = ($a < $b ? ($b | $a) : ( ($a << 3 > $b ? $b - $a : $b >> 2) > $b + $a ? $a + $a ^ $b : $a ~^ $b) );


    So, nun sollte kein Klammerfehler und Terzierfehler mehr drin sein. ^^

    Beitrag zuletzt geändert: 17.6.2009 16:48:59 von evil-devil
  11. evil-devil schrieb:
    Aua, ja, voll den Fehler reingehauen..


    Was lehrt uns das? Sauber coden heißt auch, vor Veröffentlichung ordentlich zu testen.

    Sorry, der mußte jetzt raus. ;)


    FF

    Beitrag zuletzt geändert: 17.6.2009 16:47:14 von fatfreddy
  12. Hm... also, dieser Code von dir, evil-devil, ist noch eines der sehr einfachen und schnell durchschaubaren Beispiele.

    Viel schwieriger ist etwas, was eigentlich viel einfacher ist:
    $a=1;
    $a+=$a+++++$a;

    Wie groß ist $a jetzt?

    PS: Kann mir jemand mal nen Link geben, wo es ein Paar Infos dazu gibt, worauf der mathematische Beweis der Funktionsfähigkeit eines Programms beruht?

    Beitrag zuletzt geändert: 17.6.2009 17:39:31 von nikic
  13. e********l

    nikic, welche Sprache ist das, Brainfuck?
  14. evil-devil schrieb:
    nikic, welche Sprache ist das, Brainfuck?

    Das? Das ist PHP.
    Villeicht verstehst du es so besser:

    $a=1;
    $a += $a++ + ++$a;


    Aber das ja nicht das Problem. Das Problem ist, zu checken, wie das ausgewertet wird. Und ich glaube nicht, dass du auf Anhieb auf die richtige Lösung kommst :P

    PS: Brainfuck sieht ganz anders aus...
  15. nikic schrieb:
    Hm... also, dieser Code von dir, evil-devil, ist noch eines der sehr einfachen und schnell durchschaubaren Beispiele.

    Viel schwieriger ist etwas, was eigentlich viel einfacher ist:
    $a=1;
    $a+=$a+++++$a;

    Wie groß ist $a jetzt?

    PS: Kann mir jemand mal nen Link geben, wo es ein Paar Infos dazu gibt, worauf der mathematische Beweis der Funktionsfähigkeit eines Programms beruht?


    Laut PHP ist $a jetzt Parse error: parse error in D:\xampp\htdocs\math.php on line 3
  16. cookies schrieb:
    Laut PHP ist $a jetzt Parse error: parse error in D:\xampp\htdocs\math.php on line 3

    Hm... PHP kommt wohl mit der Lehrzeichenlosen Version nicht aus, Die mit den Lücken getestet?
  17. Bei

    <?php
    $a=1;
    $a += $a++ + ++$a;
    echo $a;
    ?>


    sagt PHP: 7
  18. cookies schrieb:
    Bei

    <?php
    $a=1;
    $a += $a++ + ++$a;
    echo $a;
    ?>


    sagt PHP: 7


    Jop, 7 ist richtig. Na, wenn du noch erklären könntest warum es so ist... dann wärst du gut :D
  19. also zu dem einfachen und doppelten Anführungszeichen:

    In C/C++ sind einfache:
    $var = 'A';

    für einzelne Zeichen. (char -> character)

    und doppelte für Strings(mehr als ein Zeichen)

    $var = "AB";


    aber es geht beides, wobei die einzelnen aus schon genannten Gründen angenehmer sind.

    Beitrag zuletzt geändert: 17.6.2009 20:10:06 von myhead
  20. Autor dieses Themas

    fvg

    fvg hat kostenlosen Webspace.

    Danke für eure Antworten, ich denke, dass ich jetzt weiß, was ich wann verwende ;)

    mfg
  21. nikic schrieb:
    Jop, 7 ist richtig. Na, wenn du noch erklären könntest warum es so ist... dann wärst du gut :D


    a++ -> 1
    +
    ++a -> 3
    
    macht 4
    
    a -> 3
    += 4
    
    macht 7

    q.e.d.
    schönes beispiel für programmierung mit seiteneffekten.
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!