为什么PHP没有默认构造函数? [关闭]

2024-02-23

为什么我不能使用这样的代码?

<?php

class NoConstructor {
}

class ChildWithConstructor extends NoConstructor {
    public function __construct() {
        parent::__construct();
        // do something
    }
}

$foo = new ChildWithConstructor();
// **Fatal error: Cannot call constructor in file.php on line 8**

例如。 Java 类有默认的、无参数的构造函数。即使没有明确定义,也可以调用它。

当我们从父类中删除没有参数的构造函数时,PHP 行为可能会导致麻烦,例如。当我们认为不再需要它时。

有谁知道 PHP 创建者为什么这样做?


Java 类有默认的、无参数的构造函数。

有谁知道 PHP 创建者为什么这样做?

Java 是一种有计划的语言。它从一开始就经过严格考虑和正式指定。它的目的是为了向后和向前兼容性、为了开发人员和实施者等的简单性而以最小的变化尽可能地持续下去。肯定没有达到他们希望的程度,但您仍然可以采用 Java 1.0 代码,对其进行编译并在现代虚拟机上运行。

PHP 的设计者从未将这种语言设计得如此极端。他们边走边弥补。无论好坏,他们都愿意放弃该语言并在下一个版本中重建它。自 PHP 1 和 2 以来,它已经发生了不可识别的变化。即使在最近,在 PHP 5 中,对象语义也发生了从按值到按引用语义的巨大变化。正是这种出色的方法为我们带来了神奇的引号、Unicode 的缺乏、命名不一致(并且经常重命名)的函数,以及一个甚至没有任何错误提示的解析器(即使使用error_reporting(-1);),将愉快地解释数字文字09 as 0.

当我们从父类中删除没有参数的构造函数时,PHP 行为可能会导致麻烦,例如。当我们认为不再需要它时。

您可以在 bugs.php.net 上请求对此进行更改,但他们很可能会忽略它或用“抱歉,您的问题并不意味着 PHP 本身有问题......”.

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

为什么PHP没有默认构造函数? [关闭] 的相关文章

随机推荐

  • 无法找到 ASP.NET CodeDom 提供程序错误

    我在服务器上部署时遇到 ASP NET 错误 无法找到 CodeDom 提供程序类型 Microsoft CodeDom Providers DotNetCompilerPlatform CSharpCodeProvider Microso
  • 如何使用 LaunchDaemons (launchd) 启动 Program.app?

    我放置了以下内容com apple test plist文件夹中的文件 系统 库 LaunchDaemons
  • 跨服务器SQL

    我想将数据从一台服务器的数据库移植到另一台服务器的数据库 这两个数据库都位于不同的 mssql 2005 服务器上 复制可能不是一个选项 因为目标数据库是按 时间间隔 从头开始生成的 我最好会做类似的事情 insert from db1 t
  • 如何使用 Razor 引擎在 MVC 5 项目上添加日期选择器 Bootstrap 3?

    我需要一些关于如何安装的指南日期选择器 http eternicode github io bootstrap datepicker 使用 Razor 引擎的 MVC 5 项目上的 Bootstrap 3 我找到了这个链接here http
  • Matplotlib Figsize 不受尊重[重复]

    这个问题在这里已经有答案了 我想用 matplotlib 绘制一个正方形图 也就是说 我希望整个图形是正方形的 当我使用以下代码时 生成的图像的宽度仍然比高度大一点 为什么 matplotlib 不尊重我提供的 Figsize import
  • 当我们有客户端会话时,为什么需要 JWT?

    据我所知 JWT 是无状态令牌 它存储有关客户端声明的签名信息 并通过授权 HTTP 标头传递到服务器 我的问题是 当我们已经有了客户端会话时 为什么还需要 JWT https github com mozilla node client
  • 将数字转换为时间

    如何将数字 1 33408564814814 转换为时间 32 01 05 如果您确实想要结果作为字符串 您可以使用如下函数 set serveroutput on format wrapped declare function days
  • HDFS 文件系统的 URL

    我在 HDFS 中有一些数据 user Cloudera Test 我可以通过运行很好地查看记录hdfs dfs cat Test 现在同一个文件 我需要在 scala 中将其读取为 RDD 我在 scala shell 中尝试了以下操作
  • 如何在pyspark中将DenseMatrix转换为spark DataFrame?

    除了以下使用 Scala 的示例之外 我没有找到任何 pyspark 代码将矩阵转换为 Spark 数据帧 有谁知道如何使用 python 代替 如何将 mllib 矩阵转换为 Spark 数据帧 https stackoverflow c
  • Activity.finish() 已调用,但 Activity 仍加载在内存中

    当我在调试器上运行我的应用程序时 我得到主线程和 3 个活页夹线程 单击按钮 我拨打电话Activity finish 看起来它会在 UI 关闭并返回主屏幕时结束 Activity 但是 在调试器中 它仍然将主线程和 3 个绑定器线程显示为
  • 如何在AWS Lambda中加载npm模块?

    我使用基于 Web 的编辑器创建了多个 Lambda 函数 到目前为止 一切都很好 我现在想开始使用模块扩展这些模块 例如 Promise 的 Q 我不知道如何将模块发送到 Lambda 以便我的函数可以使用它们 我已读完在 AWS Lam
  • 在项目中使用同一 DLL 的不同版本

    在我的项目中我必须使用不同版本的AWSSDKdll的 为了做到这一点我采取了帮助这个帖子 https stackoverflow com questions 2460542 using different versions of the s
  • SQL 将字符串(日期或文本)转换为日期

    我有一个数据库 其中有一列名为stringNextDue包含日期 英国格式 和文本 例如 逾期 已完成 等数据 我正在尝试创建一个视图 显示从现在起一个月内到期的课程 WHERE CONVERT DATETIME mt stringNext
  • Excel 97-2003 (.xls) 中的单元格样式丢失或不显示

    我正在使用 Apache POI 库将数据导出到 Excel 我已经尝试了所有最新版本 3 17 4 1 2 和 5 2 1 我在使用 Excel 97 xls 格式时遇到与单元格样式相关的问题 在一定数量的列之后 单元格样式会以某种方式丢
  • 处理中点/笔划的景深着色器

    最近我一直在使用下面的景深着色器 最初来自ofx后处理 https github com neilmendoza ofxPostProcessing blob master src DofPass cppOpenFrameworks 库 用
  • 在 mongodb 文档的列表中插入项目

    我有一个这样的文档 id decfed9a04b997d pushed list 我想通过存储在 python 列表中的这些子项来更新 插入 pushed list lis1 item item1 desc desc item1 item
  • Codeigniter csrf 令牌与 ajax 请求(500 内部服务器错误)

    我很难尝试通过启用了 csrf 令牌的 CI 表单发出 ajax 请求 我做了很长时间的研究 并在与此相关的每个问题中发布了相同的解决方案 即将令牌 val 添加到 ajax 请求中的序列化数据中 我在 ajaxSetup 中执行了此操作
  • 更新排序索引列以移动项目

    如果我有下表和数据允许我们使用sort index用于排序 CREATE TABLE foo id INT 11 NOT NULL AUTO INCREMENT bar id INT 11 DEFAULT NULL sort index I
  • 无法通过MacPorts安装Git-core+svn

    我试图通过 svn 将 Git core 安装到我的 Mac 上 但未成功 sudo port install git core svn gt Verifying checksum s for db46 Error Checksum md5
  • 为什么PHP没有默认构造函数? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi