OOP-Anfänge: Function um Function

sipoh

Erfahrenes Mitglied
Hallo, ich beginne gerade mit OOP und erstelle mir einfache Klassen. Nun treffe ich auf ein Problem:

Ich möchte um die Ausgabe einer Function A in einer Klasse eine weitere Function B "legen", die sozusagen Function A beinhaltet.

Code:
class li extends ul {

 function a( $text ) {
   return '<li>' . $text . '</li>';
 }

}

class ul {
  function ul() {
   return '<ul></ul>';
 }
}


Kann mir vielleicht jemand sagen, wie genau ich das mache?
 
Moin,
dazu muss die abgeleitete Klasse erweitert werden und die entsprechende Methode neu geschrieben werden:
PHP:
class ul {
  function ul() {
    return '<ul></ul>';
  }
}

class li extends ul {
  function ul() {
    return '<ul>'.$this->a('mein Text').'</ul>';
  }
  function a($text) {
    return '<li>'.$text.'</li>';
  }
}

MfG aGeNET
 
Die Methoden des Elternobjekts sind innerhalb des Kindobjekt benutzbar. Wenn du also etwas machst wie ...

PHP:
class ul extends li {
function ul(){
return '<ul>'.$this->a($text).'</ul>'
}
}

...funktioniert es ansatzweise. Allerdings kriegst du jetzt halt ne unsortierte Liste mit genau einem Element bei jedem Aufruf. Ich hoffe, die Syntax stimmt.

Generell würd ich aber vielleicht eher je eine Funktion nehmen, die nen öffnenden Tag und nen schließenden zurückgibt und diese dann an der entsprechenden Stelle aufrufen.
 
Oder so?

Code:
class test {
	
	
	function live( $var ) {
		return '<ul>' . $this->out( $var ) . '</ul>';
	}
	
	function out( $var ) {
		foreach( $var AS $a => $b ) {
			$out .= '<li>' . $b . '</li>';
		}
		return $out;
	}
	
}	

$test = new test;
echo $test->live( array("1", "2") );
 
Eine frage: Was hat das ganze mit OOP zu tun außer das in den Codes ab und zu mal das Wörtchen "class" vorkommt? :p
 
Zurück