新对象如何在最新版本的PHP中工作

问题描述 投票:0回答:1

根据PHP 7.2文档

引入了一种新类型的对象,可用于(逆变)参数类型和(协变)返回任何对象的类型。

并给出了以下示例

<?php

function test(object $obj) : object
{
   return new SplQueue();
}

test(new StdClass());

有人可以详细说明逆变参数和协变返回类型的含义以及这个新对象的工作原理

php type-hinting php-7.2 static-typing
1个回答
-1
投票

代码中两个地方的object都可以返回通用对象,即任何类型的实例。 (如你的例子所示)

否则它需要是:

<?php

function test(StdClass $obj) : SplQueue
{
   return new SplQueue();
}

test(new StdClass());
© www.soinside.com 2019 - 2024. All rights reserved.