PHP und Vererbung

barney_hh

Mitglied
Hallo alle zusammen!

Ich stehe vor folgendem Problem: ich übergebe von einen HTML Formular per POST Methode gewisse "Werte" an an folgende php Datei:

PHP:
<?php
echo "<b>Autokonfiguration - Ausgabe in php & OOP</b><p></p>"; 
echo "<p></p>";
// Klasse Warenkorb
class auto
	{
		var $farbe;	// Eigenschaften von der Klasse warenkorb
		var $marke; // 			 
	
		function addFarbe($f)
			{
				$this->farbe=$f;
			}
		
		function addMarke($m)
			{
				$this->marke=$m;
			}
		
		function showAuto()
			{
				echo "Ihr ausgewähltes Auto ist ".$this->farbe." und von ".$this->marke."";
			}
		
	}

// Vererbung - Die Klasse cabrio übernimmt alle Eigenschaften der Klasse auto:
class cabrio extends auto
	{	
		var $dachart;	// Eingeschaft von cabrio Klasse
		
		function addDach($d)
			{
				$this->dachart=$d;
			}
			
		function showAuto1()
			{
				echo "<p></p>Die Dachtart des ".$this->marke." ist ".$this->dachart."";
			}
	}

// Objekt erzeugen:
$meinauto=new auto;
// Obejt erzeugen:
$meinauto=new cabrio;

// Methode ausführen - Farbe bestimmen:
$meinauto->addFarbe($_POST['liste']);
// Methode bestimmen - Marke auswählen:
$meinauto->addMarke($_POST['marke']);

// Methode der Unterklasse cabrio ausführen - Dachtart:
$meinauto->addDach($_POST['dachart']);

// Methode der Oberklasse ausführen:
$meinauto->showAuto();
// Methode der Unterklasse ausführen - Auto anzeigen:
$meinauto->showAuto1();

?>
<p><a href="index.html">zur&uuml;ck</a></p>

Leider wird dabei der Wert dachart nicht in die Methode addDach übernommen. Könnt Ihr mir einen Tipp geben, was ich falsch gemacht habe bzw. wo mein Denkfehler liegt?!

Vielen Dank!
 
PHP:
//$meinauto=new auto; <- brauchst du nicht

$meinauto=new cabrio;

// Methode ausführen - Farbe bestimmen:
$meinauto->addFarbe("rot");
// Methode bestimmen - Marke auswählen:
$meinauto->addMarke("BMW");

// Methode der Unterklasse cabrio ausführen - Dachtart:
$meinauto->addDach("schiebedach");

// Methode der Oberklasse ausführen:
$meinauto->showAuto();
// Methode der Unterklasse ausführen - Auto anzeigen:
$meinauto->showAuto1();
Ausgabe:
Code:
Ihr ausgewähltes Auto ist rot und von BMW
Die Dachtart des BMW ist schiebedach

Also, dass $meinauto=new auto; am Anfang kannst du getrost weglassen, du brauchst nur bei der Klassenkonstruktion anzugeben, dass es vererbt wird, so hast dus doppelt gemoppelt, ist aber egal, zu fehlfunktionen kann das eigentlich nicht führen.
Der Fehler muss bei deinem $_POST[''dachart'] liegen, schau mal, ob du das korrekt übergibst und lass dir mal das ganze $_POST-Array ausgeben, vieleicht siehste ja dann nen Fehler

Gruß
TiM
 
Zurück