Maison > Article > développement back-end > Comment appeler le constructeur de la classe parent en php ?
php appelle le constructeur de la classe parent : utilisez parent pour appeler le constructeur de la classe parent, utilisez [::] pour référencer une classe, le code est [parent::__construct($title,$firstName,$mainName, prix $) 】.
php appelle le constructeur de classe parent :
Utilisez parent
pour appeler le constructeur de classe parent
Pour faire référence à une méthode d'une classe plutôt qu'à un objet, utilisez ::
(deux deux-points) au lieu de ->
.
Donc, parent::__construct()
sert à appeler la méthode __construct()
de la classe parent.
Le code spécifique est le suivant :
<?php header('Content-type:text/html;charset=utf-8'); // 从这篇开始,类名首字母一律大写,规范写法 class ShopProduct{ // 声明类 public $title; // 声明属性 public $producerMainName; public $producerFirstName; public $price; function __construct($title,$firstName,$mainName,$price){ $this -> title = $title; // 给属性 title 赋传进来的值 $this -> producerFirstName= $firstName; $this -> producerMainName = $mainName; $this -> price= $price; } function getProducer(){ // 声明方法 return "{$this -> producerFirstName }"."{$this -> producerMainName}"; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; return $base; } } class CdProduct extends ShopProduct { public $playLenth; function __construct($title,$firstName,$mainName,$price,$playLenth){ parent::__construct($title,$firstName,$mainName,$price); $this -> playLenth= $playLenth; } function getPlayLength(){ return $this -> playLength; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; $base .= ":playing time - {$this->playLength} )"; return $base; } } // 定义类 class BookProduct extends ShopProduct { public $numPages; function __construct($title,$firstName,$mainName,$price,$numPages){ parent::__construct($title,$firstName,$mainName,$price); $this -> numPages= $numPages; } function getNumberOfPages(){ return $this -> numPages; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; $base .= ":page cont - {$this->numPages} )"; return $base; } } ?>
Chaque sous-classe appellera le constructeur de la classe parent avant de définir ses propres propriétés. La classe de base (classe parent) ne connaît désormais que ses propres données, et nous devrions essayer d'éviter de communiquer à la classe parent des informations sur la sous-classe. Il s'agit d'une règle empirique. Pensez-y si les informations d'une certaine sous-classe doivent être ". confidentiel", par conséquent, la classe parent connaît ses informations et d'autres sous-classes peuvent en hériter, de sorte que les informations de la sous-classe ne restent pas confidentielles.
Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!