PHP输入和空值

时间:2017-11-02 01:54:31

标签: php

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中工作的,我无能为力?

1 个答案:

答案 0 :(得分:2)

php7.1通过在类型前面添加问号?来允许可空类型。您可以传递可为空的参数或定义返回可空类型的函数。

Documentation here.

你的例子:

<?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
    }
}