Simpler PHP OOP Tutorial

10/22/2014 13:48 SHA256#1
Moinsen! Hier ein einfacher TUT weil #fad!

Php in OOP ist supergeil [Only registered and activated users can see links. Click Here To Register...]

.. und ganz einfach

PHP Code:
<?
# Nennen wir dieses .php Dokument
# print.cl.php
class myclass
{
    public 
$Var
    public function 
__construct()
    {
        
#Initialisieren der Klasse!
        
$this->Var "Hi"# Setzt $Var Hi
    
}
    
/*
        Zu            $this:
        Sprich... Auf    die 
        Variable names  $var
        Würde   ich    gerne 
        zugreifen! Und einen
        Wert zuweißen    bzw
        einen Wert zurückge-
        ben               ;)
    */
    
public function ausgeben(){
        
// Einfach das Kommentar Tauschen
        // Und rumspielen! 
        
return $this->var
        
//echo $this->var;
    
}
    public function 
herMitDemTitel($seite)
    {
        if(
$seite==="1"# "===" Ist schneller als "==" Bedeutet "ist exakt so"
        
{
            return 
"Index of my Site";
        }
    }
}
?>
Code:
Nun, auf einer anderen Seite möchten wir unsere
Klasse verwenden,  sie entwält   Methoden,   um 
um eine Aufgabe auszuführen. Wenn  wir  mehrere
Seiten haben, ist das echt supergeil,  denn wir 
müssen nur einmal die Klasse ändern,  und somit
werden    alle   Seite    aufeinmal   Geändert!

Hier ist die index.html
PHP Code:
<!-- Kommentar: Anfügen der print.cl.php -->
<?
require("print.cl.php"); # Wenn Dokument nicht existiert->Fehler, Seite bleibt Weiß.
/*
    Wir müssen   die Klasse 
    erstellen. Der Operator
    lautet              new 
*/
$cl = new myclass(); # $cl ist nun unser Objekt
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- Kommentar: Supergeil! Wir können auch den Titel
        Dynamisch mit php gestalten! -->
        <title><? echo $cl->herMitDemTitel("1");?></title> 
    </head>
    <body>
        <h1>Was gibt's neues?</h1>
        <!-- Kommentar: Inline PHP -->
        <?
            
/*
                Greifen wir auf    die 
                Funktion "ausgeben" zu
                und lassen uns    "Hi"
                a  u  s  g   e   b e n
                und zwar  mit    echo,
                denn  die     Funktion 
                gibt   einen    String 
                z   u   r  ü  c  k   !
            */
            
            // Einfach das Kommentar Tauschen
            // Und rumspielen! 
            
echo $cl->ausgeben();
            
//$cl->ausgeben();
        
?>
    </body>
</html>
Fragen? Anregungen? Rechtschreibfehler?



Mit freundlichen Grüßen
SHA256 Der Angst
10/22/2014 14:01 snow#2
#supergeil
10/22/2014 14:43 dowhile#3
Die Zielgruppe für dein Tutorial scheint mir sehr fragwürdig.

Du erklärst, was === ist (deine Erklärung ist aber falsch, zumindest ungenau) und lässt den Leser experimentell den Unterschied zwischen "return" und "echo" erkennen. Zudem erklärst du, was "$this" ist (aber falsch bzw. sehr ungenau). Zudem kommentierst du "require".
Diese Dinge soll der Leser in deinem Tutorial lernen.

Zum anderen setzt du voraus, dass er sich mit grundsätzlich mit PHP auskennt. Er muss fortgeschritten genug zu sein, um das Muster hinter Klassen und Methoden deinem Quelltext entnehmen zu müssen (class, public als Schlüsselwörter kennen). Außerdem ist es verwirrend, dass eine Methode irgendwas macht, ohne dass sie Aufgerufen wird, nur weil sie "__construct" heißt - das muss er erraten, also zumindest wissen, dass PHP "__"... Dinge für sich reserviert. Funktionen (Methoden) muss er kennen, wie oben aber gesagt, keinen Rückgabewert.

Wir haben es also mit einem Anfänger zu tun, der ein gutes Gefühl fürs Programmieren hat, mit den meisten Grundlagen der Sprache gut vertraut ist, aber elementare Konzepte wie Rückgaben ausgelassen hat. Oder so ... Fragwürdige Zielgruppe.

Jetzt die Kritik: "OOP" ist ein Konzept, das man nicht erfüllt, indem man eine Klasse anlegt ... Klassen sind eher Hilfsmittel der Sprache, um mit dem Konzept programmieren zu können. Du sagst aber zum Konzept nichts - dein Tutorial hat so nicht wirklich viel mit "OOP" zu tun.
Dann ist es lückenhaft (was ist public?) und so minimal, dass ich für einen potentiellen Leser keinen Lerneffekt nachvollziehen kann.

Offensichtlich bist du selber nicht sehr erfahren: Neben deinen falschen (bzw. sehr ungenauen) Erklärungen trifft man in deinem Beispiel keine Konventionen an (Klassennamen in CamelCase, Attribute in camelCase, Dateiname wie Klassennamen für autoload, nutzt jemand ernsthaft "#" zum kommentieren?!).

Verbesserungsvorschläge für deine Erlärungen:
Quote:
/*
Wir müssen die Klasse
erstellen. Der Operator
lautet new
*/
Du erstellst ein Objekt, nicht die Klasse.

Quote:
if($seite==="1") # "===" Ist schneller als "==" Bedeutet "ist exakt so"
"===" und "==" unterscheiden sich dadurch, dass "===" zusätzlich auf gleichen Typen überprüft, während "==" bei ungleichem Typ durch impliziertes Casten die Typen gleich macht.

Quote:
Zu $this:
Sprich... Auf die
Variable names $var
Würde ich gerne
zugreifen! Und einen
Wert zuweißen bzw
einen Wert zurückge-
ben ;)
$this ist das eigene Objekt und über $object->variable greift man auf ein Attribut eines Objektes zu. Deine "Erklärung" ist total schwammig und erklärt eigentlich auch wieder gar nichts. Dass man wohl irgendwas mit "Var" macht ist auch ohne Erklärung ersichtlich.
Komisch ist auch, dass du im nächsten Quelltext sogar voraussetzt, dass man das wissen muss, denn dort machst du kommentarlos ein: <? echo $cl->herMitDemTitel("1");?>
10/22/2014 15:44 Mikesch01#4
Hi,

das ist kein Tutorial, sondern das sind kommentierte Codeschnipsel. Mehr nicht.

Ich glaube kaum, das ein Neuling hier etwas verstanden hat.
10/22/2014 16:22 SHA256#5
Danke für euer feedback!