gpt4 book ai didi

允许 Array 或 ArrayAccess 的 PHP 类型提示

转载 作者:可可西里 更新时间:2023-10-31 22:47:01 25 4
gpt4 key购买 nike

是否可以允许实现 ArrayAccess 的数组或对象?

例如:

class Config implements ArrayAccess {
...
}

class I_Use_A_Config
{
public function __construct(Array $test)
...
}

我希望能够传入 Array 或 ArrayAccess。

除了手动检查参数类型之外,是否有更简洁的方法来执行此操作?

最佳答案

不,没有“干净”的方法。

array 类型是原始类型。实现ArrayAccess 接口(interface)的对象基于类,也称为复合类型。没有包含两者的类型提示。

由于您将 ArrayAccess 用作数组,因此您可以直接转换它。例如:

$config = new Config;
$lol = new I_Use_A_Config( (array) $config);

如果这不是一个选项(您想按原样使用 Config 对象),那么只需删除类型提示并检查它是数组还是 ArrayAccess。我知道您想避免这种情况,但这没什么大不了的。这只是几行,说到底,无关紧要。

关于允许 Array 或 ArrayAccess 的 PHP 类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806696/

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