如何在php中对特定对象数组进行类型暗示?
我想如何在php中对特定对象数组进行类型暗示?,php,Php,我想 return array(new Foo(), new Bar()); 有没有一种方法可以进行类型暗示呢?没有,因此在PHP中是不可能的。PHP5类型暗示仅用于函数和方法参数,而不用于返回类型 但是,PHP7添加了返回类型声明,但与参数类型声明类似,它们只能是以下之一: 类或接口 self 数组(没有关于其内容的任何细节) 可调用的 布尔 浮动 int 串 如果您使用的是PHP7,您可以只指定一个数组,或者创建一个类来保存这两个对象,并将其用作返回类型 这在phpForm中工作(当
return array(new Foo(), new Bar());
有没有一种方法可以进行类型暗示呢?没有,因此在PHP中是不可能的。PHP5类型暗示仅用于函数和方法参数,而不用于返回类型 但是,PHP7添加了返回类型声明,但与参数类型声明类似,它们只能是以下之一:
- 类或接口李>
李>self
- 数组(没有关于其内容的任何细节)李>
- 可调用的李>
- 布尔李>
- 浮动李>
- int李>
- 串
class Foo {};
class Bar {};
class Baz {
private $foo;
private $bar;
public function __construct(Bar $bar, Foo $foo) {
$this->bar = $bar;
$this->foo = $foo;
}
public function getFoo() : Foo {
return $this->foo;
}
public function getBar() : Bar {
return $this->bar;
}
}
function myFn() : Baz {
return new Baz(new Bar(), new Foo());
}
$myObj = myFn();
var_dump($myObj);
注意:这需要PHP 7+来暗示返回类型。你说的“暗示”是什么意思?目前,没有办法,尽管有一个被拒绝的方法。你有RFC@MarkBaker的url吗?
class Foo {};
class Bar {};
class Baz {
private $foo;
private $bar;
public function __construct(Bar $bar, Foo $foo) {
$this->bar = $bar;
$this->foo = $foo;
}
public function getFoo() : Foo {
return $this->foo;
}
public function getBar() : Bar {
return $this->bar;
}
}
function myFn() : Baz {
return new Baz(new Bar(), new Foo());
}
$myObj = myFn();
var_dump($myObj);