Beiträge von SteveWinfield

    Irgendwie total sinnlos. Verstehe nicht, aus welchem Grund ihr das brauchen könntet.. Man sollte die Logik strikt vom Template abgrenzen, sonst riskiert man unnötige Verzögerungen und die Struktur verschlechtert sich. LESS kompiliert den Code am Ende zu reinem CSS (Wird oft bevorzugt, weil es dynamisch ist) und somit muss das ganze am Ende einfach nur 1x in den Compiler geworfen werden und man hat eine .css Datei, die man benutzen kann. Bei diesem Script werden mir die Vorteile nicht ganz klar..

    Dieses Client Design wird nicht eingesetzt. Dieses wurde damals von Ediootti gepixelt (gecodet?).
    Jedoch wurde dieses Projekt beendet. :)

    Das Design wurde nicht von Ediootti gepixelt, sondern von den dafür beauftragten Designern, denen aber beinahe allen gekündigt wurde bzw. die gekündigt hatten.

    Finde das Design garnicht so schlecht, ist mal etwas neues. Einige Sachen sind zwar noch verbesserungswürdig, aber genau dafür gibt es ja Beta-Versionen. Keine Ahnung, ob die echt so wenige Designer haben, aber sieht so aus als würden sie beinahe nur recycelte Bilder benutzen.

    Cheers,
    Steve Winfield

    Beispiele:
    Timegirl48
    Ricketboy1
    Cybermonster10


    Cheers,
    Steve Winfield

    Für das bald kommende IDK Beta-Hotel sind wir dabei einige Beispiel-Plugins zu entwickeln. Eines möchten wir euch heute Abend zeigen.
    Es handelt sich um ein einzigartiges Event. Aber seht selbst...

    IDK - Habbo Racing - YouTube

    Was sind Plugins?
    IDK beinhaltet ein Plugin-System. Hiermit kann jeder Nutzer IDK nach seinen Belieben erweitern um bspw. neue Befehle, automatische Events, und noch viel mehr einzubauen. Dies können sie unter anderem in den Sprachen JavaScript, Ruby, Python und sogar in PHP.

    Für diese Plugins wird später ein Store verfügbar sein, wo Entwickler ihre eigenen Plugins verbreiten können und andere Nutzer die Chance haben, sie zu verwenden.

    Sobald ihr das Video angesehen habt, versteckt sich hier noch etwas interessantes:

    Spoiler anzeigen

    Das gesamte gezeigte Game wurde zu 100% in JavaScript geschrieben. In der gesamten Entwicklung gab es auch keinen einzigen Neustart im Testhotel.


    Cheers,
    Steve Winfield

    Immer noch eine schlechte Idee aus einem Forum zu lernen.
    Wieso könnt ihr euch nicht einfach ein Buch bzw. ein EBook kaufen und damit lernen?!!111


    PHP ist jetzt auch nicht so umfangreich, dass man sich dafür ein Buch kaufen muss. Wenn, dann würde ich eher aus der Dokumentation lernen, da in den letzten Version so viel dazugekommen ist und die Bücher wahrscheinlich nicht alle up2date sind.

    Cheers,
    Steve Winfield

    Müsst ihr jetzt alle Nachäffen mit euren PHP Tutorials damit ihr likes bekommt? Es gibt reichlich im Internet PHP Tutorials zu finden, wer sich wirklich interessiert. Ist langsam lachhaft.


    Musst du den wirklich diesen Post schreiben, damit du likes bekommst? Es gibt reichlich dumme Posts auf Retrotown, wer sich dafür wirklich nicht interessiert, der kann einfach mit dem nächsten Thread weitermachen. Ist langsam lachhaft.

    Die meisten dieser Tutorials gehen nicht so sehr ins Detail wie dieses. Und umso mehr Wissensquellen, umso besser.. oder siehst du das nicht auch so?

    Cheers,
    Steve Winfield

    Howdy,

    da das mit den Tutorials irgendwie zum Trend geworden ist, möchte ich mich gleich mal dranhängen. Dieses hier ist etwas theoretischer als die meisten anderen, aber ich hoffe doch auch mindestens so interessant.
    Den Titel "das etwas andere Tutorial" habe ich gewählt, um zu verdeutlichen, dass hier nicht nur ein paar Wörter gegen eure Gesichter geworfen werden und außerdem macht er euch wahrscheinlich neugieriger.

    Erstmal ein paar Fakten

    Entwickelt wurde PHP zuerst von Rasmus Lerdorf im Jahr 1995, derzeit wird es von "The PHP Group" stetig weiterentwickelt. Das Programm, das den PHP ausführt, Interpreter genannt, wurde in der Programmiersprache C geschrieben. PHP stand ursprünglich für "Personal Home Page", dies wurde aber zu "PHP: Hypertext Preprocessor" umgeändert, um den Einsatzbereich erweiternd zu definieren. Dieser liegt hauptsächlich in der Webentwicklung, in der die Sprache auch viel Erfolg zeigt. Die aktuell neuste verfügbare und stabile Version ist 5.5.15

    Wie führe ich PHP Code eigentlich aus?

    Nach der Installation eines PHP Interpreter, ich empfehle natürlich die neuste Version, sollte in eurem PHP Ordner das Programm "php.exe" unter Windows zu finden sein, Linux Nutzer können im Terminal "php" schon direkt ansprechen. Ihr könnt euren PHP Code manuell ausführen lassen oder es eurem Web-Server für euch erledigen lassen. Wenn ihr in eurer Konsole "php(.exe) --help" ausführt, solltet ihr die wichtigsten Kommandozeilenargumente für den Interpreter sehen. Das Kommando " php(.exe) -r echo 'hi' " führt den darauffolgenden Code direkt aus. Wenn ihr keinen Schalter angegeben habt, führt der Interpreter eine Datei aus, deren Dateiname darauf folgt, wie z.B. "php(.exe) test.php". Solltet ihr eine Art Server erstellen, wäre eine Batch und Shell Datei nützlich, die den Code letztendlich ausführt.

    Basisdatentypen

    Ihr werdet damit wahrscheinlich nur wenig mit PHP in Berührung kommen, trotzdem gibt es sie, auch in PHP! Datentypen sind Arten von Variablen (also Platzhaltern) mit denen sich Daten speichern lassen, um später wieder darauf zurückzugreifen. Die Datentypen in PHP sind eher abgespeckt und nicht so umfangreich wie z.B. in C oder C++.

    Skalar-Datentypen:

    • boolean (Kann wahr oder falsch sein, ist also ein Zustand. Alles über 0 ist true und alles andere ist false)
    • integer (Können Zahlen dezimal, binär, oktal und hexadezimal sein - Maximale Größe wird in PHP_INT_MAX definiert)
    • float (double) (Gleitpunkt-Datentyp mit dem sich Kommazahlen darstellen lassen. Es gibt hier keinen Unterschied zwischen float und double wie in C)
    • string (Eine Menge von Zeichen, jedes 1 Byte groß und nicht höher in einer Zeichentabelle als das Zeichen 256)


    Zusammengesetzte Datentypen:

    • array (Eine Menge von Einträgen, die alle einen Schlüssel und Wert besitzen. Wenn kein Schlüssel angegeben wurde, wird der Index verwendet)
    • object (Eine Instanz einer Klasse)


    Spezielle Datentypen:

    • NULL (Standarddatentyp aller Variablen, die nicht initialisiert wurden)
    • resource (Eine Referenz zu einer externen Quelle z.B. Datei)


    Operatoren

    Operatoren werden für das Verarbeiten von Daten (Inhalten von Variablen) benutzt. Es gibt 3 Arten von Operatoren:

    • unäre Operatoren (ein Operand)
    • binäre Operatoren (zwei Operanden)
    • ternäre Operatoren (drei Operanden)


    Steht der Operator vor dem Operanden ist er ein Präfix-Operator, steht er dazwischen ein Infix-Operator und wenn er am Ende steht, ist er ein Postfix-Operator. Die Operatoren, die ihr bei euren Taschenrechner verwendet, heißen auch arithmetische Operatoren. Diese wären:

    • + für die Addition von 2 Werten
    • - für die Subtraktion von 2 Werten
    • * für die Multiplikation von 2 Werten
    • / für die Division von 2 Werten
    • % für den Rest einer Division von 2 Werten (Modulo)

    Wer gut aufgepasst hat, sollte jetzt wissen, dass die arithmetische Operatoren alle binär sind. Ahja, die Punkt-vor-Strich-Regel gilt auch für PHP! Dann gibt es noch eine erweiterte Darstellung dieser Operatoren, die ich euch nicht vorenthalten möchte:

    • x+=y ist dasselbe wie x=x+y
    • x-=y ist dasselbe wie x=x-y
    • x*=y ist dasselbe wie x=x*y
    • x/=y ist dasselbe wie x=x/y
    • x%=y ist dasselbe wie x=x%y


    Dann gibt es noch Inkrement- und Dekrement- Operatoren mit denen ihr, wen überraschts, Zahlen inkrementieren und dekrementieren könnt. Diese können Postfix und Präfix stehen, also am Anfang und am Ende eines Operanden und da sie nur einen Operanden haben, sind sie unär. Steht der Operator Postfix, werden die Daten zurückgegeben und dann (in/de)krementiert, steht Präfix, werden die Daten (in/de)krementiert und dann zurückgegeben. Daher gehen auch folgende Schreibweisen:

    • x++ ist dasselbe wie

      PHP
      x = x
      x += 1
    • ++x ist dasselbe wie

      PHP
      x = (x += 1)
    • x-- ist dasselbe wie

      PHP
      x = x
      x -= 1
    • --x ist dasselbe wie

      PHP
      x = (x -= 1)


    Die bitweisen Operatoren erspare ich euch erstmal, weil ihr damit wahrscheinlich nicht so viel damit zutun werden habt. Wenn es euch doch interessiert, könnt ihr euch das ganze bei der PHP Dokumentation anschauen: PHP: Bit-Operatoren - Manual

    Funktionen

    PHP beinhaltet eingebaute Funktionen, die durch Funktionen in Extensions (mysqli, pdo_mysql, sockets, etc.) erweitert werden. Diese System-Funktionen wurden wie der Interpreter alle in der Programmiersprache C geschrieben. Funktionen werden aufgerufen, um etwas auszuführen und ggf. etwas zurückzugeben. Man kann auch eigene Funktionen in den Code integrieren (Dazu später mehr). Ihr Vorteil? Sie machen den Code wiederverwendbar und übersichtlicher. Beim Aufrufen dieser Funktionen kann (und muss man manchmal) Parameter/Daten weitergeben, die umklammert werden müssen. Getrennt werden diese Daten voneinander mit einem Komma.

    Neben den normalen Funktionen gibt es auch noch besondere Sprachkonstrukte, die nicht dasselbe wie die gerade erwähnten Funktionen sind. Bei diesen Konstrukten können in manchen Fällen diese Klammern weggelassen werden, jedoch kann dann auch nur ein Parameter übergeben werden. Ein bekanntes Beispiel dafür ist z.B. echo und print. Hier eine Liste mit den Wichtigsten dieser spezieller Konstrukte:

    • break (Bricht eine Schleife ab)
    • continue (Bricht aktuellen Durchgang der Schleife ab)
    • die (Beendet ein Script) - Wenn Parameter übergeben wird, dann muss dieser umklammert werden.
    • exit (Beendet ein Script) - Wenn Parameter übergeben wird, dann muss dieser umklammert werden.
    • include_once (Bindet eine andere Datei in den Script ein)
    • include (Bindet eine andere Datei in den Script einmalig ein)
    • require (Bindet eine andere Datei in den Script ein)
    • require_once (Bindet eine andere Datei in den Script einmalig ein)
    • unset ("Löscht" eine Variable) - Wenn Parameter übergeben wird, dann muss dieser umklammert werden.
    • eval (Führt einen PHP Code, der in einer Zeichenkette angegeben wurde, aus) - Wenn Parameter übergeben wird, dann muss dieser umklammert werden.
    • array (Initialisiert einen Array) - Wenn Parameter übergeben wird, dann muss dieser umklammert werden.
    • echo (Setzt etwas auf den Buffer, der am Ende an den Endnutzer weitergegeben wird)
    • print (Setzt etwas auf den Buffer, der am Ende an den Endnutzer weitergegeben wird)
    • return (Gibt Daten in einer Funktion aus)

    Auf die Ausführung dieser erwähnten Funktionen und den speziellen Sprachkonstrukten folgt immer das Zeichen ";"! Dieses Zeichen bedeutet für den Interpreter so etwas wie "abgeschlossen".

    Arrays

    Ein Array ist eine Menge von Einträgen, die alle einen Schlüssel, wenn nicht angegeben der Index, und einen Wert besitzen. Der Array besitzt eine feste Ordnung und der Index beginnt bei der Zahl 0. Die Werte können alle Datentypen annehmen, auch Arrays können Arrays beinhalten (mehrdimensionale Arrays). Mit einem mehrdimensionale Array lässt sich z.B. eine Matrix darstellen. Da der Index immer bei 0 beginnt, hat das letzte Objekt in der Ordnung immer den Index (Anzahl der Elemente - 1). Initialisiert wird ein Array mit dem Sprachkonstrukt array und die Daten werden dann über die Parameter übergeben. Wenn man einen eigenen Schlüssel definieren möchte, kann man dies tun, indem man als Parameter "Schlüssel => Wert" angibt, also beispielsweise "101 => true" für den Wert true mit dem Schlüssel 101.

    Die ersten Schritte

    Jetzt wollen wir schon etwas in die Praxis einsteigen! Einen PHP-Code umschließt ihr mit dem Anfangs-Tag "<?php" und dem End-Tag "?>". Alles was nicht zwischen diesen 2 Tags steht, wird einfach ausgegeben und nicht als ausführbaren Code verarbeitet. Bei den meisten Webservern wird euer Code als PHP-Code gewertet, wenn ihr ihn in eine Datei mit einer .php-Extension steckt. Dann wirft der Server diesen automatisch in den Interpreter und gibt die Ausgabe an den Endnutzer weiter.

    Einige Dinge haben euch bis jetzt sicher verwirrt und ich hoffe, dass euch diese spätestens nach diesem Abschnitt klar sind.

    Hier ein Beispielprogramm, das einen String über das Konstrukt echo an den Buffer weitergibt. Der Interpreter erkennt einen String nur, wenn er zwischen 2 Anführungszeichen steht.

    PHP
    <?php
    echo 'Hallo!';
    ?>

    Nachdem das Script ausgeführt wurde, wird der Buffer an den Webserver weitergegeben und dann ausgegeben. Wenn ihr alles richtig gemacht habt, steht nun "Hallo!" auf eurer Seite. Auch diese Schreibweise ist richtig (da aber echo ein spezielles Sprachkonstrukt ist, ist dies nicht notwendig)

    PHP
    <?php
    echo ('Hallo!');
    ?>

    Jetzt seid ihr euch bestimmt nach der schwammigen Beschreibung immernoch nicht sicher wie ihr Arrays initialisiert. Hier wäre ein Script, das einen Array initialisiert, das 3 Zahlen enthält, die als Schlüssel einen normalen Index enthalten.

    PHP
    <?php
    array(1, 2, 3);
    ?>

    In diesem Fall wird nichts an deinen Browser ausgegeben, da der Buffer leer bleibt. Es wird nur ein Array initialisiert, die jedoch an keine Variable zugewiesen wird. Um einen Array auszugeben, könnt ihr die Funktion "print_r" verwenden. Hier wäre ein Beispiel für die Nutzung:

    PHP
    <?php
    print_r(array(1, 2, 3));
    ?>

    Dieses Script gibt den Array mit den jeweiligen Schlüsseln und Werten aus.

    Da man diese Arrays und andere Daten ja auch öfter benutzen möchte oder der Wert am Anfang noch nicht bekannt ist, gibt es Variablen. Diese Variablen haben immer einen Wert und einen Bezeichner, mit dem man sie dann anspricht. Um eine Variable zu definieren, fängt man mit dem Zeichen $ an, dann folgt ein Bezeichner, der mit einem Unterstrich oder einem Buchstaben anfangen muss. Wie in der Mathematik kommt dann der Zuweisungsoperator "=" und dann der Wert. Damit der Interpreter weiß wann Schluss ist, muss diese Zuweisung dann auch mit dem ";" Zeichen abgeschlossen werden.

    Hier ein Beispiel für die Zuweisung eines Variable:

    PHP
    <?php
    $x = 0;
    ?>

    Nachdem diese Variable zugewiesen wurde, kann man sie im Script danach immer wieder verwenden. Hier wäre ein Beispiel:

    PHP
    <?php
    $x = 'Hello world!';
    echo $x;
    ?>

    Aber Achtung $X und $x ist nicht dasselbe. Dem PHP-Style wegen sollten eure Bezeichner immer mit einem kleinen Buchstaben anfangen.
    Eine Variable könnt ihr auch nach der Zuweisung erneut zuweisen, um den Speicher müsst ihr euch nicht besonders kümmern, da dies PHP schon selbst erledigt.

    Wie kann man jetzt eigentlich den Wert eines Array später nochmal verändern? Ganz einfach: Wenn man einen Array einer Variable zugewiesen hat, spricht man diese Variable einfach an und gibt auf den Bezeichner folgend zwei eckige Klammern an, dazwischen der Schlüssel dieses Werts. Dann folgt eine einfache Zuweisung:

    PHP
    <?php
    $x = array(1, 2, 3);
    $x[0] = 2;
    $x[1] = 3;
    $x[2] = 4;
    print_r($x);
    ?>

    Nun müsstet ihr in eurem Browser sehen, dass der Array die Werte 2, 3 und 4 enthält, der Schlüssel hat sich nicht verändert. Um einen Eintrag später noch hinzuzufügen, lasst ihr den Schlüssel bei der Zuweisung einfach weg:

    PHP
    <?php
    $x = array(1, 2, 3);
    $x[] = 4;
    print_r($x);
    ?>

    Was für eine Überraschung: Der Wert 4 wurde hinzugefügt. Wie man einen Eintrag löscht? Mit dem Konstrukt "unset", hier ein Beispiel:

    PHP
    <?php
    $x = array(1, 2, 3);
    unset($x[1]);
    print_r($x);
    ?>

    Jetzt sind nur noch die Werte 1 und 3 zu sehen.

    Manchmal möchte man bestimmte Strings mit weiteren Strings oder anderen Datentypen kombinieren. Dafür bietet PHP den "." und "," Operator.

    PHP
    <?php
    $string = 'Hallo ' . 'Welt! Nummer ' . 1;
    echo $string;
    ?>

    Gibt "Hallo Welt! Nummer 1" aus. PHP wandelt dann andere Datentypen automatisch in einen String um.

    Dann noch ein weiteres wichtiges Thema: Bedingungen! Dafür gibt es die Konstrukte "if", "else" und "elseif". Man gibt Bedingungen mit dem Konstrukt "if" an, dem zwischen zwei Klammern dann Bedingungen gegeben werden. Falls dann mehrere Aktion folgen sollen, müssen diese mit "{" und "}" eingeschlossen werden, bei nur einer ist dies nicht nötig.

    Vergleichs-und Bedingungsoperatoren können wahr oder falsch sein, hier ist eine Liste der Wichtigsten dieser Operatoren:

    • == (Ist gleich)
    • != (Ist nicht gleich)
    • < (Ist kleiner als)
    • > (Ist größer als)
    • <= (Ist kleiner oder gleich)
    • >= (Ist größer oder gleich)

    Möchte man z.B. das Alter eines Nutzers checken, wäre dies das Skript:

    PHP
    <?php
    $alter = 8;
    if ($alter < 18) {
        echo 'Du bist nicht volljährig!';
    ?>

    Da dies aber nur eine Aktion war, die ausgeführt wurde, ist dies auch möglich:

    PHP
    <?php
    $alter = 8;
    if ($alter < 18)
        echo 'Du bist nicht volljährig!';
    ?>

    Mit den Konstrukten "else" und "elseif" lassen sich dann nur Aktionen ausführen, wenn die Bedingungen des darüberstehenden Konstrukts nicht stimmen. Falls "elseif" oder "else if" genutzt wird, müssen dann erneut darauffolgende Bedingungen wahr sein. Bei "else" müssen keine angegeben werden.

    Um z.B. Erwachsenen einen speziellen Inhalt anzuzeigen, Jugendlichen einen anderen und Kindern nochmal einen anderen, lässt sich das so lösen:

    PHP
    <?php
    $alter = 15;
    if ($alter < 14)
       echo 'Du bist jünger als 14.';
    else if ($alter < 18)
       echo 'Du bist unter 18 aber älter als 13.';
    else
       echo 'Du bist älter als 17.';
    ?>

    Man kann natürlich auch mehrere Bedingungen über logische Operatoren angeben. Hier ist eine Liste dieser:

    • Mit dem || oder or Operator wird gecheckt, ob eine der Bedingungen wahr ist.
    • Mit dem && oder and Operator wird gecheckt, ob beide Bedingungen wahr sind.
    • Mit dem xor Operator wird gecheckt ob eine der Bedingungen übereinstimmt, aber nicht beide.
    • Mit dem ! Operator wird gecheckt ob eine Bedingung nicht wahr ist.


    Davon sind alle Operatoren bis auf der !-Operator binär und infix. Der !-Operator ist unär und Präfix. Man kann Bedingungen auch in Klammern einschließen.

    In diesem Fall wird nur "JA" an den Browser weitergegeben, wenn die Variable "zahl" größer als 15 und kleiner als 20 ist oder größer als 30 und kleiner als 35, andernfalls "NEIN".

    PHP
    $zahl = 16;
    if (($zahl > 15 && $zahl < 20) || ($zahl > 30 && $zahl < 35))
        echo 'JA';
    ?>

    Damit man diese If-Zeile nicht jedesmal schreiben muss, gibt es den ?: Operator. Dieser ist einer der wenigen ternären Operatoren. Die Syntax ist folgende:

    PHP
    BEDINGUNG ? WENN_WAHR : WENN_NEIN

    Dabei gibt dieser Operator dann nicht wahr oder falsch zurück, sondern WENN_WAHR oder ggf. auch WENN_NEIN. Hier ein Beispiel, das den Code von vorher in eine Zeile verkürzt:

    PHP
    <?php
    echo (($zahl > 15 && $zahl < 20) || ($zahl > 30 && $zahl < 35) ? 'JA' : 'NEIN');
    ?>

    Hier wurden die Parameter-Klammern bei "echo" nur aufgrund der Überschaubarkeit gesetzt.

    Ich habe ja vorhin geschrieben, dass man auch eigene Funktionen definieren kann. Das möchte ich euch nun anhand eines Beispiels zeigen.

    PHP
    <?php
    function bezeichner($argument1, $argument2) {
         echo 'Hallo ' . $argument1 . '! Alles ' . $argument2 . '?';
    }
    bezeichner('Name', 'klar');
    ?>

    Hier wird die Funktion "bezeichner" definiert, die 2 Argumente besitzt. Bei den Bezeichnern der Funktionen gelten die gleichen Regeln wie bei den Bezeichnern von Variablen. Man kann jedoch keine bereits definierten Funktionen überschreiben, da diese konstant sind.

    Man kann Argumenten auch einen Standardwert zuweisen, wenn sie beim Aufruf der Funktion nicht angegeben wurden. Hier wurde das alte Beispiel umgeschrieben:

    PHP
    <?php
    function bezeichner($argument1, $argument2 = 'klar') {
         echo 'Hallo ' . $argument1 . '! Alles ' . $argument2 . '?';
    }
    bezeichner('Name');
    bezeichner('Name', 'doof');
    ?>

    Hier wird beim ersten Aufruf "Hallo Name! Alles klar?" und beim zweiten "Hallo Name! Alles doof?" ausgegeben. Funktionen können über das Sprachkonstrukt "return" Daten zurückgeben, die dann verwendet werden können. Hier ein Beispiel einer Funktion, die den ausgegeben String zurückgibt, statt ihn über echo auszugeben. Aber Achtung: Nachdem return ausgeführt wurde, wird die Funktion abgebrochen und alles was danach in der aktuellen Funktion kommt einfach weggelassen. Wird bei return kein Parameter angegeben oder return wird weggelassen, sind die zurückgegebenen Daten der Funktion vom Typ NULL.

    PHP
    <?php
    function bezeichner($argument1, $argument2 = 'klar') {
         return 'Hallo ' . $argument1 . '! Alles ' . $argument2 . '?';
    }
    echo bezeichner('Name');
    echo bezeichner('Name', 'doof');
    ?>

    Mit diesen Rückgabedaten können auch Bedingungen geschrieben werden, hier z.B. ein Check ob das angegebene Passwort richtig ist:

    PHP
    <?php
    function istRichtig($password) {
        return $password == 'hallo';
    }
    if (istRichtig('hallo')) {
         echo 'mache dinge';  
         echo 'und noch mehr dinge';
    }
    ?>

    In diesem Fall gibt die Funktion isRichtig die Daten von "$password == 'hallo'" zurück. Vergleichsoperatoren geben wie bereits erwähnt immer true oder false zurück, also kann man diese Funktion auch so umschreiben:

    PHP
    <?php
    function istRichtig($password) {
        return true;
    }
    if (istRichtig('hallo')) {
         echo 'mache dinge';  
         echo 'und noch mehr dinge';
    }
    ?>

    In diesem Fall ist das Passwort immer richtig und der If-Block wird ausgeführt.

    Da Funktionen konstant sind und schon vor anderen Variablen definiert werden, können sie normalerweise nicht auf globale Variablen zugreifen. Deshalb gibt es das Sprachkonstrukt global mit dem man andere Variablen in der Funktion gültig machen kann. Beim Konstrukt "global" kann man auch gleich mehrere Variablen angeben, statt es mehrfach zu verwenden. Hier ein Beispiel:

    PHP
    <?php
    $i = 0;
    function test() {
        global $i;
        return ++$i;
    }
    echo test();
    echo test();
    ?>

    Die Funktion test gibt beim ersten Aufruf die Zahl 1 aus und beim zweiten Aufruf die Zahl 2. Hier noch ein Beispiel mit mehreren Variablen:

    Hier werden die Zahlen 2 und 3 ausgegeben.

    Jetzt gehts zu dem letzten Kapitel eurer kleinen Grundausbildung in PHP, den Schleifen! Schleifen sind Blöcke, die nach bestimmten Bedingungen immer wiederholt ausgeführt werden. Fangen wir am besten bei den einfachsten an!

    while

    Die while-Schleife funktioniert ähnlich wie die if-Schleife, bei ihr werden genauso Bedingungen angegeben. Aber die darauffolgende Anweisungen oder Anweisung wird so lange ausgeführt, bis die Bedingung nicht mehr wahr ist. Hier ein Beispiel eines Blocks der so lange ausgeführt wird, bis die Zahl "i" nicht mehr kleiner als 5 ist.

    PHP
    <?php
    $i = 0;
    while ($i < 5) {
        echo 'Die Zahl ist jetzt '.$i.'.';
        ++$i;
    }
    ?>

    Dieses Script dürfte jetzt "Diese Zahl ist jetzt .." 5x ausgeben, da "i" solange inkrementiert wird, bis "i" 5 ist und 5 ist nicht kleiner als 5.

    foreach

    Mit der foreach-Schleife lassen sich z.B. alle Einträge eines Arrays durchlaufen. Man kann auch eigene Funktionen schreiben, die man mit foreach-Schleifen durchlaufen kann, aber dazu könnt ihr euch auch einen Eintrag in der PHP-Dokumentation ansehen. http://php.net/manual/de/language.generators.syntax.php

    PHP
    $array = array(1, 2, 3);
    foreach ($array as $wert) {
        echo $wert;
    }

    In diesem Beispiel wird zuerst 1 ausgegeben, dann 2 und dann 3. Um von jedem Wert auch den Schlüssel auszugeben, kann man das Script so umschreiben:

    PHP
    $array = array(1, 2, 3);
    foreach ($array as $schluessel => $wert) {
        echo $schluessel . '=' . $wert;
    }

    for

    Mit der for-Schleife wird zuerst etwas initialisiert, dann etwas gecheckt und dann etwas optional ausgeführt. Getrennt werden diese Schritte mit dem bekannten ";" Zeichen. Hier ist die Syntax:

    PHP
    for (ERSTER_AUFRUF(, ZWEITER_AUFRUF); BEDINGUNG; AUFRUF_BEI_JEDEM_DURCHGANG1(, AUFRUF_BEI_JEDEM_DURCHGANG2))

    ERSTER_AUFRUF wird hier beim Anfang der Schleife zuerst ausgeführt, danach optional ZWEITER_AUSRUF, der durch ein Komma getrennt wird. Danach folgt die Bedingung die wie bei while nach jedem Durchgang gecheckt wird. Wenn die Bedingung wahr ist, wird der AUFRUF_BEI_JEDEM_DURCHGANG1 und optional AUFRUF_BEI_JEDEM_DURCHGANG2 ausgeführt.

    Hier ist ein Beispiel, das das erste Beispiel mit der while-Schleife abkürzt:

    PHP
    for ($i = 0; $i < 5; ++$i) {
        echo 'Die Zahl ist jetzt '.$i.'.';
    }

    Zuerst wird hier die Zahl "i" auf 0 gesetzt, danach gecheckt ob sie kleiner als 5 ist und wenn es so ist, wird die Zahl inkrementiert und der Block ausgeführt. Das war erstmal eine kleine Reise ins Land PHP. Nun habt ihr schon Grundkenntnisse erworben! Wenn ich euch jetzt weitere Funktionen, die objektorientierte Programmierung, Sockets, Regex und weiteres vorstelle, dann könnte ich ja gleich anfangen ein Buch zu schreiben.

    Cheers,
    Steve Winfield

    Hey Steve Dleifniw,
    ich hätte da ne Frage...

    Was denkst du wie lange ihr noch für den Emulator bräuchtet. Ich weiss der kann nicht in 2 Tage fertig werden, da steckt schon viel Zeit.
    Aber was schätzt du denn ?

    MFG
    iTech

    So eine Frage kann man ganz einfach nicht beantworten. Man muss Bugs einkalkulieren, neue Funktionen, Tests, die Organisation und natürlich auch noch die Zeit, die man im Moment für die Entwicklung nicht hat.

    Cheers,
    Steve Winfield

    Hey,

    wir sind wieder auf den Zug in Richtung tolles Habbo Projekt aufgestiegen und haben einige Updates für euch.

    Trotz der unmissverständlichen Aussage, dass sich IDK momentan noch in der Entwicklungsphase befindet, war das Team von Ragezone der Meinung, dass wir schon damit planen das Produkt später zu verkaufen, was laut Foren-Regeln verboten ist, weshalb unser Thread auf Ragezone jetzt gelöscht ist.

    Ein wohl wichtige Änderung ist der erneute Umstieg auf R63A, die wir vorgenommen haben, da viele unserer Kollegen und auch eine Menge von Usern der Meinung waren, dass diese neue Version von Habbo trotz der neuen Features nicht den Standard der alten Version erreicht.

    Cheers,
    Steve Winfield

    Edit: Es ist leider Pixie, denke ich ... Also nicht selbstgemacht. Aber egal ...

    so far
    Yannici

    Naja, wieso leider.. Es funktioniert und der User kann ganz normal Badges erstellen. Man sagt ja auch nicht leider, wenn jemand Wordpress als Forensoftware benutzt, statt etwas eigenes.. und das Tool scheint auch nicht bemerkbar langsam zu sein. Von der Struktur kriegt der User nicht besonders viel mit und das wird auch meistens nicht von mehreren Personen gewartet. Die TVs sind nicht die selben wie bei anderen Hotels, diese nutzen keine WebSockets, sondern kriegen die Nachricht über den Flash Player.. Somit spart man sich einen extra Server. Da wurde die SWF etwas editiert.

    Cheers,
    Steve Winfield

    Was wollt ihr mit diesem Projekt und Eurem Alter erreichen? Mit einer "so tollen" Art der Projektorganisation könntet Ihr doch viel mehr erreichen als einen unnötigen Habbo Emulator bzw. ein Backend zu Programmieren..


    Was wir mit unserem Projekt und unserem Alter erreichen wollen? Ich kenne nicht viele erfolgreiche Unternehmen, deren Gründer älter als 25 waren, von daher ist die Frage mit dem Alter schon mal fällig. Was wir mit dem Projekt erreichen wollen? Erfahrung. Es ging uns nie um das Geld, sondern allein um die Erfahrung, die uns vielleicht irgendwann mal nützlich sein wird.

    Welcher Softwareentwicklungsprozess ist für ein kleines Team am Besten, wie schafft man es die Performance von langsamen Algorithmen ohne die eigentliche Funktion zu ändern (A-Star) zu pushen, was interessiert Jugendliche im Alter von 12-16, wie wirkt sich die Nutzung von funktionellen Programmiersprachen auf Softwareprojekte aus? (Scala), wie bringt man Jugendlichen am Einfachsten bei Programme für die eigene Software zu entwickeln? (JavaScript Plugins), Moderation eines Chats? Es geht automatisch, aber auch gut?, internationales Projekt-Management? Wie geht's am besten...

    Mit diesen Fragen und noch vielen mehr haben wir uns während der Entwicklung auseinandergesetzt. Man sieht, dass nichts auf dieser Welt sinnlos ist und wenn wir etwas für dich als "bedeutend" definiertes machen sollten, werden wir das was wir seit dem Anfang der Entwicklung gelernt haben, sinnvoll einsetzen können.

    Cheers,
    Steve Winfield

    Hey,

    Notizen sind nun auch fertig.

    P.S.: Wenn ihr einen Klebezettelblock in euren Raum stellt, können euch eure Raumbesucher auch ohne Rechte Notizen hinterlassen (mit ihren eigenen Posties). Wenn eine Notiz hinterlassen wird, wird eine Signatur hinzugefügt, die den Namen des Autors und das Datum enthält, an dem die Notiz geschrieben wurde (Signatur wird nicht bei Raumbesitzern und Habbos mit Rechten hinzugefügt)

    #goGermanyGo

    Cheers,
    Steve Winfield