Ein Thema für sich... ich werd euch nicht lang langweilen, nicht alles bis ins Detail erklären, das überlass ich dem hier:
http://www.peterkropff.de/site/php/oop_einfuehrung.htmIch geh rein mal auf die wichtigsten Dinge ein und starte gleich etwas "fortgeschrittener", aber für Anfänger kompakt zusammengefasst...
Erst mal der Main-Namespace... bei Linux wär dieser '/', also so gesehen 'root', das Wurzelverzeichnis. Kann man zwar weglassen, aber ich nehms immer dazu.
#1 = Einbindung der Klassen ist auch einfach. Ich gehe hier vom Unterordner './classes/' aus, in welchem sich die Datei 'uebung.php' befindet.
#2 = Die Instanziierung der Klasse 'uebungsklasse' im Namespace 'uebungsspace'. So zu arbeiten ist praktisch, wenn man innerhalb einer Schleife z.B. verschiedenste Prozesse abarbeitet, wo alle Klassen den selben Namen besitzen (z.B. 'bearbeite'), jedoch für verschiedene Prozesse verschiedene Abläufe benötigt werden - man nimmt einfach den Namen des anderen Namespace und muss sich nur um die gleiche Namensgebung innerhalb dieser Klasse kümmern. Sorgt auch für mehr Übersicht, als wenn man jetzt die einzelnen Klassen 'bearbeite_txt', 'bearbeite_pdf' oder sonstwie nennt.
#3 = Zugriff auf eine öffentliche Funktion innerhalb der Klasse
#4 = Zugriff auf eine öffentliche Variable innerhalb der Klasse
Code:
<?php
namespace
{
/* codeteil */
require_once('./classes/uebung.php'); #1
$test = new \uebungsspace\uebungsklasse; #2
$test -> testfunktion('123', '456'); #3
$test -> zahl; #4
}
?>
Kommen wir jetzt zur Datei ./classes/uebung.php...
#1 = es reicht 'class uebungsklasse', aber ich habe hier gleich 2 weiterführende Themen eingebracht:
- final heißt es ist die finale Klasse - von ihr können keine weiteren Kindklassen abgeleitet werden, dazu später jedoch mehr
- extends gibt eine parent-klasse an - zum Bleistift eine für mehrere Klassen gültige Hauptklasse. Klasse Mensch extends Saeugetiere...
#2 = Initialisierung einer innerhalb der Klasse verfügbaren Variable. Zuweisung von Werten sollte erst innerhalb von Funktionen geschehen...
- public: Es kann öffentlich (außerhalb der Klasse) darauf zugegriffen werden, wie im vorhergegangenen Beispiel
- protected: Nur innerhalb dieser und den Kindklassen kann darauf zugegriffen werden
- private: Nur innerhalb dieser Klasse kann darauf zugegriffen werden - interne Funktionen usw., die außerhalb nicht direkt benötigt werden
#3 = normale Funktion, ebenso public/protected/private deklarierbar
#4 = Zugriff auf die Parentklasse - auf member (variablen, funktionen, etc.) kann man entweder per parent::variable bzw. parent::funktion zugreifen, oder ganz einfach per $this -> funktion(), da die Kindklasse das ganze Zeugs ja geerbt hat. Das :: heißt übrigens paamayim nekudotayim und das wiederum heißt doppel-doppelpunkt... ^_^
#5 = Zugriff auf die Variable innerhalb der Klasse mittels $this -> zahl (auch möglich mit this::zahl)
Code:
<?php
namespace uebungsspace
{
final class uebungsklasse extends \main\hauptdatei #1
{
public $zahl; #2
public function testfunktion($testvariable); #3
{
parent::parentfunktion($blabla); #4
$this -> zahl = $testvariable; #5
}
}
}
?>
Noch schnell ein Beispiel für die Elternklasse:
Code:
<?php
namespace main
{
class hauptdatei #1
{
protected $parentvariable;
protected function parentfunktion($bla);
{
/* Irgend ein Code, der ausgeführt werden soll */
$this -> parentvariable = 1;
}
}
}
?>
So, grad viel Stress gehabt - mich freut coden heute nicht mehr... ich hoff mal, dass es zumindest halbwegs verständlich war und ich keine Fehler eingebaut hab... hab den Code jetzt nicht getestet und war jetzt n paar Stunden im Stress, mir reichts für heute... xD
_________________
https://www.accountkiller.com/removal-requestedБороться и победить в борьбе против мониторинга!
Kjempe og vinne kamp mot overvåkning!
Pugnare et pugna vincere versus circumdare custodiere!