代码之家  ›  专栏  ›  技术社区  ›  POV

如何在PHP中指定类型?

  •  -3
  • POV  · 技术社区  · 6 年前

    有两类:

    class Product {
      public id;
      public name;
    } 
    
    class OrderCustomer
    {
    
        public $DeliveryDate;
        public $PhotoBefore = 0;
        public Product[] products;
    
    }
    

    所以,我尝试指定属性 products 在课堂上 OrderCustomer 作为 Product 类型。它应该是一系列的产品。 如何在php中做到这一点?

    1 回复  |  直到 6 年前
        1
  •  2
  •   John Conde    6 年前

    正如在评论中提到的,PHP不是一种强类型语言,您要寻找的是不可能的,至少在C和Java等语言中是不可能的。通过强制执行添加到 $products 通过将向其添加值限制为仅接受类型为 Product

    要获得类型提示,您需要使用Doc Prop显式声明该变量用于保存和数组产品。

    class Product {
        public $id;
        public $name;
    }
    
    class OrderCustomer
    {
    
        public $DeliveryDate;
        public $PhotoBefore = 0;
    
        /** @var Product[] */
        public $products = [];
    
        public function addToProductArray(Product $product) 
        {
            $this->products[] = $product;
        }
    
    }
    

    因为 $产品 是现在 protected 如果您希望通过这种方式访问它,请确保您还制作了一个getter,以便从类外部(即通过调用代码)获取它的值。

    推荐文章