Anzeige:
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 16 bis 30 von 37

Thema: PHP Anfänger Workshop

  1. #16
    Registrierter Benutzer
    Registriert seit
    12.05.2003
    Beiträge
    25

    Kapitel 15 - foreach-Schleifen

    In diesem Kapitel wirst du eine neue Schleifenart kennenlernen. Es handelt sich hierbei um die foreach-Schleife.

    Diese Schleifenart erlaubt es dir, Arrays auf sehr einfache Art und Weise komplett duchlaufen zu lassen. Zunächst aber ein Beispiel, wie man einen Array umständlich mittels einer üblichen for-Schleife durchlaufen kann.

    <?
    $array = array("Ich","mag","PHP","und","mySQL"); //Hier wird ein Array definierty
    $count = count($array); //In $count wird die Anzahl der Elemente, welche sich in $array befinden gespeichert
    for($i=0; $i != $count; $i++)//For-Schleife zum auslesen des Arrays
    {
    echo("$array[$i] ");
    }
    ?>

    Diese Methode ist für das Durchlaufen eines kompletten Arrays sehr umständlich. Abhilfe schafft hier die foreach-Schleife. Diese Schleife durläuft automatisch ein ganzes Array von [0] bist zum Ende. Hier ein Beispiel zum besseren Verständnis:

    <?
    $array = array("Ich","mag","PHP","und","mySQL"); //Hier wird ein Array definiert
    foreach($array as $element)//foreach-Schleife
    {
    echo("$element ");//Ausgabe
    }
    ?>

    Erklärung:

    Die foreach-Schleife benötigt zwei Angaben. Als erstes muss man der Schleife mitteilen, welchen Array man gerne komplett verarbeiten möchte. In unserem Falle ist dies der Array $array. Als nächstes folgt das Schlagwort "as". Nun folgt eine beliebig "undefinierte" Variable - in unserem Fall $element. Bei jedem Durchlauf erhält die Variable $element den entsprechenden Wert des Arrays.

  2. #17
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Du wolltest kritik...

    1.) DAS hier "<?php" sind die PHP Tags oder per <script...> auf keinem Fall sollte man "<?" benutzen (kompatibilität). Gerade wenn man einen Anfängerworkshop sollte man das beachten.

    2.) Anstatt der Session Funktionen sollte man mittlerweile besser den $_SESSION array bentuzen.

    3.) $_POST, $_GET wird nicht nur ans Herz gelegt, sondern dringend empfohlen.

    4.) echo wird ohne die Klammern benutzt.

    DAs ist mir so beim ersten drüberfliegen aufgefallen. Wobei 1. auf ALLE FÄLLE korrigiert werden sollte (imho).
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  3. #18
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo!

    Ich bin eben erst dazu gekommen den Workshop zu überfliegen...
    Mehlvogel hat mir schon sehr viel Vorweggenommen... gerade bei der Parameterübergabe haperts noch stark, weil das eines der Häufigsten Probleme hier im Forum ist.
    $_GET, $_POST, $_REQUEST sollte nicht nur "dringend empfohlen" werden, es sollte einfach nichts anderes mehr erwähnt werden... dann kommt keiner auf dumme Ideen!
    Das ständige Einleiten mit <? ist mehr als unschön - das sollte niemals verwendet werden, da es nicht XML Konform ist und nicht bei jeder Konfiguration läuft (wie Mehlvogel schon erwähnt hat).

    Alle Punkte die Mehlvogel angesprochen hat sind mir auch aufgefallen... und noch etwas:
    Bitte verwende, wenn du ein Array ansprichst nicht
    $array[key]
    sondern
    $array['key']
    Das ist auf jeden Fall sauberer, da du Probleme bekommst falls key vorher als Konstante definiert wurde.

    Bitte verwende auch die PHP Tags des Forums für die Codeabschnitte... das erhöht die Lesbarkeit!


    Ich bin auch dafür, dass wir den Teil mit der Installation des Triaden komplett rausschmeissen, da der Triad total veraltet ist.

    Zu guter letzt nach all der Nörgelei ( -> konstruktive Kritik!)

    Danke @LinuxDev für diesen Workshop, der das Forum sehr schön erweitert!
    Geändert von Gaert (17-05-2003 um 00:18 Uhr)


  4. #19
    Registrierter Benutzer
    Registriert seit
    12.05.2003
    Beiträge
    25
    Danke für die Kritik aber zu meiner Verteidigung:

    Als wir den Workshop geschrieben haben war es noch üblich nicht auf $_SESSION, $_POST usw zu setzten.

    das mit "<?" ist ja eigentlich egal, solange mein kein xml benutzt.

    echo wird nur ohne klammern genutzt, solange nur variablen ausgegeben werden. wenn man immer bei echo (""); schreibt, dann ist man immer auf der sicheren Seite. Man sollte einen Anfängerworkshop ja nicht zu kompliziert machen.

    Das mit den Arrays ist wohl wahr.

    Ich habe leider wie gesagt zu wenig Zeit diesen Workshop zu pflegen.

  5. #20
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Üblich oder nicht, bei den meisten ist es leider immer noch net üblich. Das ist genau das Problem, gar nicht erst die Falsche Methode zeigen sondern gleich die richtige -ansonsten entstehen nur schlechte / sehr unsichere Scripts.

    Gleiches gilt für "<?" - es ist halt der short tag, der von jedem Admin deaktiviert werden kann (und auch im Entwicklungsbereich zumindest sollte). Das ist schlechter Code und stürzt den Anfänge nur in Probleme, wenn er später mit XML weitermacht, etc.. Das Tag lautet "<?php" und das muss auch benutzt werden.

    Ich benutze echo immer ohne Klammern, auch wenn ich nur Text ausgebe und ich kenne niemanden der das benutzt (nicht mal die PHP Entwicklern, siehe hier). Finde ich auch Schwachsinn, da echo keine Funktion sondern ein "Sprachkonstrukt" ist, aber das soll jeder so handhaben wie er es möchte, ich benutze es weiterhin ohne (was es imho auch übersichtlicher macht).
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  6. #21
    Registrierter Benutzer
    Registriert seit
    12.05.2003
    Beiträge
    25
    wie gesagt - der workshop ist älter. es hindert dich niemand daran den workshop zu korrigieren.

  7. #22
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo!

    Danke für die Argumentation Mehlvogel... nimmst mir die Worte aus dem Mund.

    Nochmal zu dem...
    echo wird nur ohne klammern genutzt, solange nur variablen ausgegeben werden. wenn man immer bei echo (""); schreibt, dann ist man immer auf der sicheren Seite.
    Sorry, aber das ist falsch!

    Zitat aus dem Manual:
    echo() is not actually a function (it is a language construct) so you are not required to use parentheses with it. In fact, if you want to pass more than one parameter to echo, you must not enclose the parameters within parentheses. It is not possible to use echo() in a variable function context.
    Es wird allgemein empfohlen echo und print ohne Klammern zu verwenden!

    @LinuxDev:
    Vorschlag: Wir weden das Tutorial nach und nach gemeinsam im Teamwork ausbessern, wenn das OK für dich ist...
    Nach wie vor finde ich die Arbeit bis auf die gannten ungereimtheiten echt gut und hilfreich für Anfänger.
    Geändert von Gaert (17-05-2003 um 16:39 Uhr)


  8. #23
    Registrierter Benutzer
    Registriert seit
    03.07.2002
    Beiträge
    21
    Moin!

    Netter Workshop, auch wenn ich ihn mir zugegebenermaßen nicht komplett durchgelesen hab (nur die ersten 3, 4 Abschnitte).
    (Anmerkung von Gaert:
    (...)MySQL ist nur für den privaten Einsatz kostenlos!)
    Das ist leider falsch. MySQL ist unter der GPL verfügbar, womit du es zu _jedem_ beliebigen Zweck einsetzen kannst. Nur wenn du es weitergeben willst, darf es nicht mit mit Propriärer Software gelinkt sein (PHP ist Open Source = kein Prob), du musst die Sourcen verfügbar machen usw., was halt bei der GPL zu beachten ist.

    Zitat www.mysql.com/downloads/index.html:
    You need to purchase commercial non-GPL MySQL licenses:
    • If you distribute MySQL Software with your non open source software,
    • If you want warranty from MySQL AB for the MySQL software,
    • If you want to support MySQL development.
    Ansonsten würde ich noch dringend in dem Workshop empfehlen, dass sich die Leute einen Editor holen, der Syntax-Hervorhebung versteht und automatisch einrückt. Auch ein Kommentar über ordentliches Coden (Einrücken, Codeblocke, die eine Einheit bilden, mit Leerzeilen einrahmen usw.) kann nicht schaden. An den Beiträge von vielen Anfängern kann man erkennen, dass dort mit einfachen Editoren wie Notepad usw. gearbeitet wird, die leider dazu verleiten, Spagetticode zu schreiben. Und PHP ist nunmal eine Einsteigersprache

    iGEL

  9. #24
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hi Igel...
    hatte mich da auf Informationen aus der Firma verlassen... da gings aber eben nicht um open source Software, sondern um PHP Skripte die durch den Zend Encoder gejagt wurden.
    Ich werde die aussage entsprechend ändern... weiss nur noch nicht wie - ein Vorschlag?


  10. #25
    Registrierter Benutzer
    Registriert seit
    03.07.2002
    Beiträge
    21
    Moin!

    Ich würds ganz einfach machen: "MySQL ist freie Software und kann damit in fast allen Fällen kostenlos eingesetzt werden. Mehr dazu hier". Oder so

    iGEL

  11. #26
    Registrierter Benutzer Avatar von rideyourstyle
    Registriert seit
    23.09.2004
    Beiträge
    25
    hi leute

    frage betreffend zend studio:

    wenn ich ein PHP script schreibe und das mit dem Zend bearbeite (debuggen und so) kann mir jemand beweisen, dass ich dieses Programm benutzt habe?
    Es geht um eine Wette die ich abgeschlossen habe..

    Danke, wenn jemand dazu etwas schreiben kann!
    _______________________________
    rideyourstyle.ch

  12. #27
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo,

    da das Zend Studio (ich denke davon redest du) die PHP Dateien in einem ganz normalen ASCII Format speichert und (AFAIK) keine Metainformationen in der Datei lässt denke ich nicht, dass anhand der Datei nachvollziehbar ist, dass sie mit dem Zend Studio editiert wurde.
    Der Zend Encoder wandelt die PHP Datei in einen Bytecode um - da sieht man natürlich, dass sie durch den Encoder gejagt wurde.
    Ehrlich gesagt verstehe ich den Sinn der Wette nicht... wäre nett, wenn du das mal erklären würdest.

    Gruß,

    Gaert
    Geändert von Gaert (04-10-2004 um 16:56 Uhr)


  13. #28
    Moderator Avatar von geronet
    Registriert seit
    24.05.2001
    Ort
    Grainau
    Beiträge
    96
    Öhm, will ja nicht meckern aber in dem Beispiel Nummer 5.2 ist ein Mega-Fehler:
    <?
    $a = 5;
    $b = 10;
    $a += $b;
    echo("$b");
    ?>

    Erklärung: Zunächst werden wieder zwei Variablen Werte zugewiesen ($a = 5; und $b = 10. In der nächsten Zeile kommt der Zuweisungsoperator += zum Einsatz. Dieser bewirkt, dass der Wert der Variable von $a zunächst zu dem Wert der Variable $b hinzugezählt wird und die Summ wiederrum wird gleich der Variabel $b zugewiesen. In der Variable $b ist also vor dem ausführen der Wert 10 gespeichert und nach dem ausführen des Scriptes die Summe der beiden Variablen - also 15. Logischerweise gibt das Script mittels des echo-Befehles den Wert 15 aus.
    Also bei mir kommt da 10 raus.. einem C-Programmierer fällt sowas halt auf

  14. #29
    Registrierter Benutzer Avatar von ClausVB
    Registriert seit
    05.08.2005
    Ort
    NRW - Deutschland
    Beiträge
    106

    Exclamation => echo("$a");

    Zitat Zitat von geronet
    (...) Also bei mir kommt da 10 raus.. einem C-Programmierer fällt sowas halt auf
    Ja, da hat geronet recht. Ich nehme mal an, es ist ein Tipp-Fehler und muss heißen:

    PHP-Code:
    echo("$a"); 
    Denn dann wird auch 15 ausgegeben.

    Gruß
    Claus

    PS: Ich musste das Skript erst eingeben, um den Fehler zu finden. Ich dachte an der Erklärung bzw. der Logik wäre etwas falsch ... *rotwerd*.
    Geändert von ClausVB (13-10-2005 um 17:00 Uhr) Grund: Fehler in den Abständen

  15. #30
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Also ich benutze auch XML - <? bereitet mir da keine Schwierigkeiten, und wird von allen Hostern unterstützt.

    Ich benutze echo grundsätzlich mit Klammern, dann ist das ganze einfach übersichtlicher.

    Was man vielleicht noch ergänzen könnte wäre ein Kapitel über Objektorientierung.
    Geändert von Turbohummel (16-10-2005 um 09:44 Uhr)
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •