php - 如何定义一个只有在没有参数传递给构造函数时才能实例化的类?
问题描述
如何定义一个只能实例化不带参数的类,并在任何参数传递给构造函数时禁止实例化?
我的目标是强制执行一组应该是“简单”并用作模板的类。作为其中的一部分,我不希望在实例化期间将任何内容传递给构造函数。
当通过构造函数传递任何内容时,我希望事情失败(运行时错误、致命错误、静态解释器错误检查等)
class Template()
{
...
}
new Template(); // okay
new Template($anything); // must not work
解决方案
如果通过了任何内容,只需引发异常:
class Foo {
public function __construct(...$args) {
if (count($args) > 0) {
throw new Exception('No arguments!');
}
}
}
推荐阅读
- python - 保存到/从 SQL 加载的大型稀疏矩阵数据与 Numpy 文件数据
- jmespath - 在 JMESPath 查询中,如何在嵌套值旁边重复一个值?
- swift - WKWebView 的 Swift 关闭帮助评估javascript
- javascript - 当 ReactJS 中的分页项处于活动状态时如何更改颜色?
- dart - 检查列表是否包含另一个列表的一个或多个值
- sql-server - 使用 SQL/VisualStudio 将数据分配给特定用户?
- asynchronous - 主题订阅,等待函数执行完成
- kotlin - 使用非对称用户授权保护的密钥库密钥加密大字符串时出现问题
- typescript - 'typeRoots' 在项目中找不到 d.ts 声明文件
- java - 如何在 java 中使用 charAt() 方法检查多个索引?