hi,
ich hab folgendes Problem: Ich habe 2 Klassen Foo und Bar. Ich will mit Hilfe von Bar, Foo erweitern. Foo besitzt eine Methode namens xy mit 2 Parametern also xy($x, $y). In Bar möchte ich xy mit 2 Type hinted Parametern aufrufen also so xy(ObjectX $x, ObjectY $y). Wenn ich das:
mache bekomme ich einen Fehler:
Jetzt hab ich 2 Möglichkeiten erstens ich bleibe bei extends:
oder zweites ich wrape die Foo klasse:
Ich würde gerne den Namen der Methode in der parent-Klasse behalten bzw. sie (die Methode) gerne überschreiben damit sie das selbe macht wie in der Doku von Foo nur eben mit einen kleinen Zusatz.
Wissen möchte ob es einen wesentlichen Nachteil bei der zweiten Lösung gibt oder ob es keine Unterschied macht?? Sollte es eine weiter Lösungen geben bin ich gerne für alles offen!
vielen Dank Mario!
PS: is_subclass_of() ist zu vernachlässigen bzw wird nicht zwingenderweise gebraucht.
ich hab folgendes Problem: Ich habe 2 Klassen Foo und Bar. Ich will mit Hilfe von Bar, Foo erweitern. Foo besitzt eine Methode namens xy mit 2 Parametern also xy($x, $y). In Bar möchte ich xy mit 2 Type hinted Parametern aufrufen also so xy(ObjectX $x, ObjectY $y). Wenn ich das:
PHP:
class Foo{
public function xy(){
return x*y;
}
}
class Bar extends Foo{
private $x;
public function xy(ObjectX $x, ObjectY $y){
$this->x = $x;
return x*y;
}
}
Code:
[COLOR=#000000][FONT=Times New Roman]Strict Standards: Declaration of Bar::xy() should be compatible with that of Foo::xy() in /bla/bla/bla/FooBar.php on line 1[/FONT][/COLOR]
Jetzt hab ich 2 Möglichkeiten erstens ich bleibe bei extends:
PHP:
class Foo{
public function xy(){
return x*y;
}
}
class Bar extends Foo{
public function xy_bla(ObjectX $x, ObjectY $y){
$this->x = $x;
parent::xy($x, $y);
}
}
oder zweites ich wrape die Foo klasse:
PHP:
class Foo{
public function xy(){
return x*y;
}
}
class Bar {
private $foo
public function __construct(){
$foo = new Foo();
}
public function xy_bla(ObjectX $x, ObjectY $y){
$this->x = $x;
return $foo->xy($x, $y);
}
}
Wissen möchte ob es einen wesentlichen Nachteil bei der zweiten Lösung gibt oder ob es keine Unterschied macht?? Sollte es eine weiter Lösungen geben bin ich gerne für alles offen!
vielen Dank Mario!
PS: is_subclass_of() ist zu vernachlässigen bzw wird nicht zwingenderweise gebraucht.
Zuletzt bearbeitet: