Java中有一项功能允许我将空值传递给参数中的方法,并返回空值:
class Test {
public List<String> method (String string) {
return null;
}
public void otherMethod () {
this.method(null);
}
}
但是,在PHP中,以下内容不起作用:
<?php
class SomeClass {
}
class Test {
public function method (): SomeClass
{
return null;
}
}
$test = new Test();
$test->method();
我无法将null值传递给类型化方法:
class Test {
public function method (SomeClass $obj)
{
// I can't pass null to this function either
}
}
我发现这很烦人,有什么我想念的吗?或者它是如何在PHP中工作的,我无能为力?
答案 0 :(得分:2)
php7.1通过在类型前面添加问号?
来允许可空类型。您可以传递可为空的参数或定义返回可空类型的函数。
你的例子:
<?php
class SomeClass {
}
class Test {
public function method (): ?SomeClass
{
return null;
} }
$test = new Test();
$test->method();
或
class Test {
public function method (?SomeClass $obj)
{
// pass null or a SomeClass object
}
}