实例化派生类时是否隐式调用抽象类构造函数?

2024-01-23

举个例子:

abstract class Base {
    function __construct() {
        echo 'Base __construct<br/>';
    }
}

class Child extends Base {
    function __construct() {
        echo 'Child __construct<br/>';
    }
}

$c = new Child();   

来自 C# 背景,我期望输出是

基础 __construct
子 __construct

然而,实际输出只是

子 __construct


不,如果子类定义了构造函数,则不会调用父类的构造函数。

从子类的构造函数中,您必须调用父类的构造函数:

parent::__construct();

如果需要的话,传递参数。

通常,您将在子类的构造函数的开头、任何特定代码之前执行此操作;这意味着,就您而言,您将拥有:

class Child extends Base {
    function __construct() {
        parent::__construct();
        echo 'Child __construct<br/>';
    }
}


并且,作为参考,您可以查看 PHP 手册的此页面:构造函数和析构函数 http://php.net/manual/en/language.oop5.decon.php- 它指出(引用) :

Note:如果子类的构造函数不会被隐式调用 定义一个构造函数。
为了 运行父构造函数,调用parent::__construct()内 需要子构造函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实例化派生类时是否隐式调用抽象类构造函数? 的相关文章

  • 从路径中删除不必要的斜杠

    path home to my site 我正在尝试删除不必要的正斜杠 从上面的路径 我正在努力得到这个结果 home to my site 我失败了str replace 因为我不知道斜线的数量 优雅的解决方案 With preg rep
  • 如何将 PHP 数组中的值插入到 MySQL 表中?

    我正在创建一个注册表单 其中包含姓名 电子邮件和电话号码字段 为了检查用户输入的有效性 我有一个函数validate input 返回一个数组 arr包含用户输入的输入 如果用户输入有效 arr然后传递给一个单独的函数 该函数将值插入arr
  • 如何处理 BrainTree 中的 Webhook

    我正在尝试使用 BrainTree webhooks 进行订阅交易 但无法让我的页面进行验证 来自脑树 https www braintree payments com docs php webhooks destination verif
  • {PHP} 致命错误:不在对象上下文中时使用 $this (Joomla)

    我真的不了解 php 并且碰壁了 问题是我的网站显示以下错误 Fatal error Using this when not in object context in hermes web07 b2350 pow thefoodie htd
  • 为什么 IIS 不执行我的网站根目录 index.php 文件的 PHP 代码?

    IIS实际上是在发送将代码发送到浏览器而不是执行它 但是 仅针对根http domain com index php file 该文件夹中的所有其他 php 文件和子文件夹中的 index php 文件均按预期执行 我怎样才能执行我的根in
  • mysql 数据库更新和 codeigniter 行受影响的功能[重复]

    这个问题在这里已经有答案了 我在更新查询后使用此功能此 codeigniter 功能 this gt db gt affected rows 如果我更新值 它会返回受影响的行数 但如果我更新与之前相同的值 它会返回 0 受影响的行 任何帮助
  • 在 PHP Codeigniter 中向 form_submit 添加一个类

    我正在尝试在 PHP Codeigniter 中向 form submit 添加一个类 我正在使用以下代码 attributes1 array class gt btn btn danger echo form submit loginSu
  • 在每次长循环迭代时回显“字符串”(flush() 不起作用)

    我有一个需要很长时间才能执行的循环 并且我希望脚本在循环迭代完成时显示一些内容 echo Hello flush for i 0 i lt 10 i echo i 5 10 sec execution time flush 在整个脚本完成之
  • 在 PHP / MySQL 中处理未读帖子

    对于个人项目 我需要使用 PHP 和 MySQL 构建一个论坛 我不可能使用已经构建的论坛包 例如phpBB 我目前正在研究构建此类应用程序所需的逻辑 但这已经是漫长的一天了 我正在努力解决为用户处理未读帖子的概念 我的一个解决方案是有一个
  • 回退到正则表达式中字符串的开头

    是否可以让正则表达式退回到字符串的开头并再次开始匹配 这就是我问的原因 给定下面的字符串 我想捕获子字符串black red blue and green按照该顺序 无论主题字符串中出现的顺序如何 并且仅当所有子字符串都存在于主题字符串中时
  • Laravel htmlspecialchars() 期望参数 1 是我的项目中给出的字符串、对象?

    所以我正在尝试编写一个简单的网站表单 但它有这个 htmlspecialchars 错误 我尝试制作 message 但没有成功 有同样的错误 这是我的控制器
  • php 日期函数和 Carbon 哪个更快?

    Carbon 是 DateTime 的简单 PHP API 扩展 我想知道我们可以通过 Composer 安装 Carbon 来使用日期时间函数 php 日期时间函数和 Carbon 哪个更快 我对您的评论做了一些测试 比较了 DateTi
  • 表单未将帖子值绑定到实体

    我有一个学说实体 一个表单和 2 个字段集 当我用值填充实体时 值会按预期合并到表单中 当我尝试从表单数据创建实体时 它保持为空 我一定是忘记了什么 但就是找不到它 我还有其他几种没有字段集的表单 它们按预期工作 有任何想法吗 下面发布了我
  • REST API 响应中的校验和

    发送带有响应内容的校验和是个好主意吗 如果是这样 计算校验和的最常见方法是什么 Example HTTP 1 1 200 OK Date Thu 30 Jun 2011 21 32 20 GMT Server Apache Connecti
  • 清理 php 中的句子

    标题可能听起来很奇怪 但我有点尝试设置这个 preg replace 来处理文本区域的混乱写入者 它必须 如果有感叹号 则不应连续出现另一个感叹号 如果有 则逗号胜出 并且必须是 当昏迷前有一个 空格时 应将其减少到零 该句子不能以逗号开头
  • 最佳实践:在 PHP 中导入 mySQL 文件;分割查询

    我遇到了一种情况 我必须更新共享托管提供商上的网站 该网站有一个 CMS 使用 FTP 上传 CMS 文件非常简单 我还必须导入一个大的 相对于 PHP 脚本的范围 数据库文件 未压缩时大约 2 3 MB Mysql 已关闭 无法从外部访问
  • 使用 Composer CLI 将数据添加到额外属性

    根据文档extra的财产composer json 架构 https getcomposer org doc 04 schema md extra 允许设置 供脚本使用的任意额外数据 出于脚本目的 如果可以将数据添加到extra通过命令行属
  • 无法上传大于 8MB 的文件

    我正在尝试制作一个文件上传脚本 并且我已经为这个问题苦苦挣扎了一段时间 我已阅读并尝试了与此相关的所有答案 但无济于事 这是我在 php 中尝试过的 文件名 file uploads On upload max filesize 100M
  • 如何处理 file_get_contents() 中的 403 错误?

    我在使用时遇到 403 错误file get contents 我想这样处理这个错误 if required function file get contents url detects there is a 403 error do so
  • PHP - 将文件系统路径转换为 ​​URL

    我经常发现项目中的文件需要从文件系统和用户浏览器访问 一个例子是上传照片 我需要访问文件系统上的文件 以便可以使用 GD 来更改图像或移动它们 但我的用户还需要能够从类似以下的 URL 访问文件example com uploads myp

随机推荐

  • Bootstrap 轮播上的动画高度变化 (v2.3.2)

    我正在尝试使用 Bootstrap 的轮播来处理高度不同的内容 高度会根据浏览器宽度而有所不同 并且轮播下方有内容 我想使用 CSS 来动画幻灯片之间的高度变化 在朋友的帮助下 我几乎可以在 FireFox 中实现此功能 第一张幻灯片跳转
  • 从 Cognito 触发器发送消息

    我想限制用户从 Cognito 托管的 UI 登录 我可以看到有触发器可以附加 lambda 但是每当我更改 lambda 内部的事件对象时 而不是获取自定义消息User exceeded limits I get unrecognizab
  • 如何像屏保一样改变CAGradientLayer的颜色?

    我被创造了UIView与申请CAGradientLayer颜色效果如我所附图片所示 现在 我想像屏幕保护程序一样平滑地改变它的渐变颜色从上到下的变化 我已经尝试过使用NStimer有点完成了 但它的颜色在改变CAGradientLayer看
  • 智能 JVM 和 JIT 微优化

    随着时间的推移 Sun 的 JVM 和 JIT 已经变得相当智能 过去作为必要的微优化而成为常识的事情不再需要 因为它会为您处理好 例如 过去的情况是 您应该将所有可能的类标记为 Final 以便 JVM 内联尽可能多的代码 然而现在 JI
  • C# 线程,WaitHandle.WaitAll

    是否可能不使用 WaitHandle WaitAll waitHandles 阻止 winForm 而只是设置另一个线程 当从 WaitHandle WaitAll 获取 complate 信号时将触发该线程 我不会使用WaitHandle
  • 使用 JavaScript 从对象中递归删除属性和值的最快方法是什么?

    我需要找到最快的方法来删除所有 meta对象的属性及其值 例如 part one name My Name something 123 meta test test123 part two name name dob dob meta so
  • Android PDF页面转图像api

    有没有可能的方法将 pdf 转换为图像并在图像视图上显示它们 PDF 不是由图像组成 而是由矢量组成 T Couple 开源 Java PDF 到图像转换器 例如 http www jpedal org http www jpedal or
  • 当所述列的值为 NULL 时,我在可空列上使用 JSON_extract 函数的 where 语句是否得到确认?

    我有一个 where 语句 其中包含 JSON extract 方法 JSON extract 使用一个名为的可为空列new value or old value 如果列包含 JSON 字符串 则该检查有效 但当列为 NULL 时 wher
  • jsf/primefaces 在 bean 初始化期间加载指示器

    在我的 JSF Primefaces 项目中 我在 bean 的 init 构造后 方法中加载了大量数据 这就是为什么我想在 Bean 加载期间显示 gif 指示器 我尝试使用 primefaces 和 Ajax 状态 展示的程序化版本 h
  • 无需 Web 界面即可在 Drupal 中切换主题

    我正在学习 php 和创建主题 不幸的是 当我编辑当前在 drupal 中使用的主题时 我在主题中犯了一个错误 即使我点击 drupal index php 也不会再显示任何内容 我想将损坏的 drupal 主题更改为可用的主题 但我无法这
  • Angular ngFor ngIF 通过管道过滤数据的条件

    ngFor 基于使用管道的搜索进行过滤 这工作正常 现在我必须根据搜索查询添加 ngIf 条件 如果没有任何结果 那么我必须显示另一个带有 无数据 文本的新 div
  • 设置STS但在web应用程序中保留formsauthentication

    我正在现有的网络应用程序上启用 Windows 身份基础 我希望尽可能少地干扰现有代码 因此我希望登录页面使用应用程序中留下的表单验证 并且如果用户通过特定页面 例如 im comming from some other site aspx
  • 使用 CDK 创建自定义 AWS IAM 策略

    根据文档 https docs aws amazon com cdk api latest docs aws cdk aws iam Policy html https docs aws amazon com cdk api latest
  • 验证 C 程序的输入

    我有一个 C 程序 其中接受 2 个数字作为输入 如何验证输入的内容是否仅为数字而不是字符 void main int a b printf Enter two numbers scanf d d a b printf Number 1 i
  • 将 IronPython 嵌入到我的 C# 应用程序中的最佳方式是什么?

    我有一个由非常精通技术的人使用的应用程序 他们想要可编程性的小岛 所以我使用了嵌入式 Iron Python 然而 自 IronPython 2 0 Eval 起不再起作用 具体来说 我无法同时加载模块和注入局部变量 有一个解决办法 我仍然
  • 如何查询Win32_PerfFormattedData_Tcpip_NetworkInterface中的特定适配器?

    如何查询特定适配器 最好基于 IP 地址 Win32 PerfFormattedData Tcpip NetworkInterface 我花了一段时间谷歌搜索这个问题 但没有找到解决方案 我尝试使用Win32 NetworkAdapter
  • 如何在Python程序中处理操作系统信号?

    我正在编写一个 python 程序 它通过无限 while 循环从队列中读取数据 我如何处理操作系统 键盘中断 CTRL C 发送的信号以打破 while 循环并关闭活动连接和文件并优雅地退出程序而不是终止进程 while True rea
  • SQLSTATE[HY093]:参数号无效:参数未定义

    我使用 Yii 的活动记录模式已经有一段时间了 现在 我的项目需要访问不同的数据库来进行一项小事务 我认为 Yii 的 DAO 对此很有帮助 但是 我遇到了一个神秘的错误 CDbCommand 执行 SQL 语句失败 SQLSTATE HY
  • 使用翻转过渡更改 leftBarButtonItem?

    在我的代码中 我以编程方式将带有 UIButton 的 leftBarButtonItem 更改为 UIActivityIndi catorView 我想知道如何在更改时执行翻转过渡 有什么想法吗 多谢 嗯 我有一种感觉 要做翻转过渡 你需
  • 实例化派生类时是否隐式调用抽象类构造函数?

    举个例子 abstract class Base function construct echo Base construct br class Child extends Base function construct echo Chil