Faire new dans __construct()

hikaru-59
Invité n'ayant pas de compte PHPfrance

11 oct. 2021, 17:06

Bonjour,
J'ai commencé par apprendre le php objet. J'ai vu des scripts où on utilise new dans __construct().
J'essaye de faire cela dans un de mes scripts pour voir si ça marche, mais ça ne marche pas :

Code : Tout sélectionner

class Model { public $message = "Bonjour, je suis Tom !"; public function __construct($message) { $this->message = $message; } } class Article { private $model; public function __construct() { $this->model = new Model(); echo $this->model; } } $article = new Article(); // Doit afficher normalement : "Bonjour, je suis Tom !"
J'ai l'erreur : Fatal error: Uncaught ArgumentCountError: Too few arguments to function Model::__construct().
J'ai vu qu'on peut faire avec de cette façon (qu'on appelle injection de dépendance je crois), et ça ne marche pas non plus :

Code : Tout sélectionner

class Article { private $model; public function __construct(Model $model) { $this->model = $model; echo $this->model; } } $article = new Article();

Mammouth du PHP | 2215 Messages

11 oct. 2021, 17:09

public function __construct($message) {
$this->model = new Model();
Too few arguments to function Model::__construct()

que veut dire la dernière ligne ?