gpt4 book ai didi

php - 类型提示和多个构造函数

转载 作者:可可西里 更新时间:2023-11-01 12:36:11 25 4
gpt4 key购买 nike

我一直在研究 PHP7 的新功能,并认为我可能会开始为我的项目准备好它引入的新功能,例如标量类型提示。

我遇到的第一个问题是我在各种类中的构造函数。我有一些通用的委托(delegate)人,它们的行为类似于:

public function __construct($data = null) {
if (is_numeric($data)) {
$this->controller->createById($data);
}
elseif (is_array($data)) {
$this->controller->createByArray($data);
}
elseif (strlen($data) > 0) {
$this->controller->createByUrl($data);
}
}

为此方法引入类型提示当然会全方位抛出错误。

据我所知,PHP7 没有引入对多个构造函数的支持。有没有办法解决这个问题,或者这是语言的局限性之一?

最佳答案

正确,这是该语言的局限性之一。(而且 strlen() > 0 无论如何都无法通过类型进行检查。它会自动转换为字符串……因此您的方法允许除“”、null 和 false 之外的所有内容?)

一般来说,草案中有RFCs来扩展7.1中PHP的typehinting: https://wiki.php.net/rfc/union_types

这样你就可以编写 int | float |数组 |字符串 $data = null.

关于php - 类型提示和多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542425/

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