【问题标题】:How to create a `Typed` array in php? [duplicate]如何在php中创建一个`Typed`数组? [复制]
【发布时间】:2021-10-17 05:27:57
【问题描述】:

我想做类似的事情,在classB 中创建一个定义类型为classA 的数组,但是我找不到语法。

class classA{
}
class classB{
    private classA $someName:array;
}

【问题讨论】:

  • 这是没有办法的。仅适用于 phpdoc cmets。
  • @u_mulder 它与类型声明有何关系?
  • “类型数组”是什么意思? classA $someName 表示该变量的类型为 classA,而不是数组

标签: php strong-typing type-declaration


【解决方案1】:

在 php 中没有类型化数组,但你可以实现一个数组的包装类,或者一组带有可变参数的函数。例如:

class classB{
    private array $arr;
    public function __construct(classA ...$classAs){
       this->$arr = $classAs;
    }
}

您可以在这里阅读更多信息:https://www.cloudsavvyit.com/10040/approaches-to-creating-typed-arrays-in-php/

另一种方法是扩展数组类,并使用instanceof 对每个元素进行类型检查,如下所述:Type hinting - specify an array of objects

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 2018-06-08
    • 2010-11-02
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多