问:在关于对象继承的视频中,老师在创建构造函数类时使用了“parent”关键字,有点像这样:
<?php
function __construct ( $name , $flavor , $record ) { parent :: __construct ( $name , $flavor , $record ); }
但是当我这样做时它是错误的。
我不得不这样做:
<?php
function __construct ( $name , $flavor , $record ) { Fish :: __construct ( $name , $flavor , $record ); }
为什么我不能在这里使用“父”关键字?
鱼.php
<?php
class Fish { public $common_name ; 公共$flavor ; 公共$record_weight ; function __construct ( $name , $flavor , $record ){ $this -> common_name = $name ; $this ->风味= $flavor ; $this -> record_weight = $record ; }公共函数getInfo () { $output =
" { $this -> common_name }是一条很棒的鱼。" ;
$output .= "吃的时候很{ $this -> flavor } 。" ; $output .= "目前世界纪录{ $this -> common_name }称重{ $this -> record_weight } 。" ; 返回$output ; } } class Trout扩展了Fish { }
答:要调用父对象,您必须确保您所在的对象扩展了另一个对象——即它有一个父对象。所以我要检查的第一件事是我是否在正确的地方打电话给父母。
<?php
class SomeParent { function __construct () { // 这不起作用,因为它不扩展另一个类(并且没有父类)parent :: __construct (); } } class SomeChild extends SomeParent { function __construct () { // 这会起作用,因为它确实扩展了一个类(并且有一个父类)parent :: __construct (); } }