Class!
Hi
Ich suche gute Tuts über Klassen in PHP habe schon mir ne einführung angeschaut! Bis jetzt weiss ich wie das Grundgerüst aussieht und wie einzelnes Funktioniert aber mit den Zuweisern $this un new bin ich noch nicht sehr gut vertraut kennt einer von euch gute seiten die das erklären? Hier das Grundgerüst: PHP-Code:
|
Naja, ne Seite kenne ich jetzt nicht aber ich kann Dirs vielleicht erklären!
Klassen sind ja bekanntermaßen bestandteil von Obejektorientierter Programmierung und da gibts eben wie der Name schon sagt Objekte. Eine Klasse ist dabei das Grundgerüst eines Objekts. Bsp. wäre ein Suzuki Swift mit Klimaanlage in weiß ein Objekt der Klasse Auto! Jedes Objekt hat eigenschaften (Farbe, usw.) die von der Klasse mitgeliefert werden. Die Werte dieser Eigenschaften sind aber immer verschieden von Objekt zu objekt. Jetzt zu new und $this mit $meinAuto = new Auto() legst ein neues Objekt der Klasse Auto an (also ein konkretes Auto) $meinAuto->farbe = "weiß"; setzt den Wert der Eigenschaft farbe für das Objekt $meinAuto auf "weiß" Mit $this beziehst Du Dich auf das aktuelle Objekt (meinstens (immer?) in Methoden (= sowas wie Funktionen) innerhalb einer Klasse: Bsp: Das ist Deine Klasse: class Auto() { var $motorzustand =; //Dies ist der Konstruktor - diese Funktion wird automatisch aufgerufen, wenn ein neues Autoobjekt angelegt wird! function Auto() { $this->motorzustand = 'aus'; } function starte_motor() { $this->motorzustand = 'an'; } } Dann kannst Du das machen: $suzuki = new Auto(); echo $suzuki->motorzustand; // Ausgabe aus $suzuki->starte_motor(); echo $suzuki->motorzustand // Ausgaben an Ich hoffe es nützt Dir was! |
|
Besser konnte man das Nicht erklären wie du Ben20 :-)
Bis jetzt habe ich alles geraft aber noch eine Frage kann man $this auch ausserhalb einer Funktion bzw. Klasse benutzten oder kann $this nur inerhalb einer Funktion bzw. Klasse benutzt werden? Aber sonst DANKE für das Kleine TUT was mir erstmal vollkommen ausreicht ;-) |
Soweit mir bekannt kannst Du $this nur innerhalb von Klassen benutzten, da es sich ja immer auf "aktuelle" Objekt bezieht.
|
So nun habe ich meine erste klasse erstellt welche auch funktioniert bloss der text welcher in einer Tabelle soll, steht neben der Tabelle hier mal der Code:
<?php class fehler { var $fehler_text; function fehler_ausgabe(){ echo " <html> <head> <title>Free4Webmaster.net - All for your Website ...</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <table border="0" cellpadding="0" cellspacing="2" width="584" align="left"> <tr><td width="575" class="navi_cat"><div align="left"><font color="#FF0000" size="3"><strong>Fehler</strong></font> </div></td> <td width="7" class="navi_cat"></td><td width="2" class="navi_cat"></td> </tr><tr><td colspan="3" class="navi_left">".$this->getausgabe().". <a href='javascript:history.back()'>Zurück</a></td></tr> </table> </body> </html>"; } function getausgabe() { return $this->fehler_text; } } ?> Um nun die Klasse auf zu rufen habe ich das so gemacht: <?php $f_text = new fehler; $f_text->fehler_ausgabe(); echo $this->$fehler_text = "Dein Name oder Passwort ist Ungültig!"; ?> Es wird zwar alles ausgegeben aber der neue Text wird neben der Tabelle ausgegeben wie kann ich das verhindern? Mfg Funjoy |
<?php
$f_text = new fehler; $f_text->fehler_ausgabe(); echo $this->$fehler_text = "Dein Name oder Passwort ist Ungültig!"; ?> So wird die Tabelle ausgeben, dann wird der fehler_text nicht gesetzt (weil $this->$fehler_text und nicht $f_text->fehler_text (ganz wichtig nach -> kein $) und ausgeben! Versuchs mal so: <?php $f_text = new fehler(); // () nicht vergessen $f_text->fehler_text = 'Dein Name oder Passwort ist falsch!'; $f_text->fehler_ausgabe(); ?> |
Jo jetzt funzt es ;-)
Mfg Funjoy |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33:36 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.