gpt4 book ai didi

php - 有没有办法强制 PHP 在编译时检查构造函数调用?

转载 作者:行者123 更新时间:2023-12-04 15:55:49 25 4
gpt4 key购买 nike

我最近的大部分经验都在 Java 中,我很惊讶以下 PHP 代码没有抛出编译时错误:

<?php
class Test { }
$a = new Test('foo', true, false, 18320);

有什么方法可以强制这是语法错误或编译时错误吗?

最佳答案

PHP 是一种非常松散类型的动态语言,它始终允许您将任何集合和任意数量的参数传递给函数或构造函数调用而不会出错,除非传递的参数不符合其定义中的类型提示;例如,这是行不通的:

class Test {
public function __construct(array $a, $b, $c, $d) {}
}

// Catchable fatal error: Argument 1 passed to Test::__construct()
// must be an array, string given
$a = new Test('foo', true, false, 18320);

但即便如此,这也不会导致语法错误——这是运行时的 fatal error 。

最接近的做法是在运行时在函数或方法体内强制执行检查。

关于php - 有没有办法强制 PHP 在编译时检查构造函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com