Miért nem tudok ilyen öröklési láncot létrehozni php-ban?
Van egy sql connection classem. Az a neve, hogy Connection.
Örököl tőle egy FromDatabase nevű class, és a constructor-t parent::__construct-al megkapja tőle.
Attól örököl egy ToDatabase class, a konstruktort szintén megkapja parent::__contruct-al.
Erre a hibaüzenet a következő:
Missing argument 1 for FromDatabase::__construct(), called in
Van egy protected változó, aminek értéket kell adnom a FromDatabase-ben is és a ToDatabase-ben is, egy asszociatív tömb. Mindkettőben ugyanaz.
Kéne örökölnöm a $conn nevű változót is, és a $keysAndValues változót is egy öröklési láncban a ToDatabase-ban.
Nagyjából ez a kód:
class Connection {
protected $conn;
function __construct(){
$this->conn = new mysqli(....
}
}
class FromDatabase {
protected $keysAndValues;
function __construct($keysAndValues){
$this->keysAndValues = $keysAndValues;
parent::__construct();
}
}
class ToDatabase {
function __construct() {
parent::__construct();
}
}
Lehet eggyáltalán ilyen öröklési láncot kialakítani php-ban?
A FromDatabase-nek nincs paraméter nélküli konstruktora.
Az osztályokat mindenesetre érdemes lenne átgondolni, mert ez valami szörnyszülött, nem OOP kód.
Na megvan a megoldás. Köszönöm szépen a választ. Sajnálom, ha szerinted rossz a kód, amit írtam, de úgy vélem, hogy ezt igencsak nehezen tudod megítélni annak a fényében, hogy a kód funkcióját nem ismered. Ennek ellenére lehet, hogy igazad van.
További szép napot kíváncsok neked!
class GrandParent {
protected $variable;
function __construct($variable) {
$this->variable = $variable;
}
}
class ParentClass extends GrandParent {
function __construct($variable) {
parent::__construct($variable);
}
public function echo() {
echo $this->variable;
}
}
class Child extends ParentClass {
function __construct($variable) {
parent::__construct($variable);
}
public function echo() {
echo $this->variable;
}
}
$child = new Child("szöveg");
$child->echo();
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!