调用父类构造方法的无法执行其前面的代码

问题描述

我在 PHP 中有两个类,一个是父类一个是子类。
在子类的一个方法里面调用父类的构造方法,而且给构造方法传递了一个参数,但是在父类的构造方法里面却接收不到这个参数

代码描述

child.php

class child extends parent{
    public function __comstruct(){}
    public function method(){
    //而且我在这里直接return居然不生效,代码直接从   
    //parent::__construct($param);开始执行,也就是说前面的代码没有执行,问题应该就在这里,不理解为什么不执行。
        $param = 123;
        parent::__construct($param);
    }
}

parent.php

class parent{
    public function __construct($param){
    //在这个接收不到$param这个参数
    }
}
创梦流浪人
最佳答案

没问题啊 3v4l.org/6dj9W

11个月前 评论
讨论数量: 10
陈先生

高端局。你猜你的类实例化的时候父类在干啥?

11个月前 评论
创梦流浪人 (楼主) 11个月前
pardon110

parent 是 php 关键字,思考一下

file

11个月前 评论
创梦流浪人 (楼主) 11个月前
一念沧海一念桑田 10个月前

php手册中就能找到答案

类与对象-基本概念

file

保留字列表-预定义类-特殊的类

file

所以只要你把parent.php文件中的类名parent改为合法类名就可以得到预期结果了

ps: 构造方法是有天赋的,它会在对象创建时自动执行以方便在使用对象之前做一些初始化工作,楼主例程中的使用方法有违其天赋,可以但不提倡

10个月前 评论

哈哈哈哈哈哈,我的心路历程:第一眼看这个代码好像没啥问题啊!就是奇怪为什么用parent关键字?construct写成了comstruct,emmm应该是楼主手敲的例子,实际代码没用parent吧。然后我去运行了一下代码,没问题啊!!然后去看评论,卧槽........难道你真用了parent关键字定义类名了啊???(ps:如果真用了,编辑器应该有提示吧)

10个月前 评论
创梦流浪人 (楼主) 10个月前

没有恶意哈,仅仅说一下我的感受

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!