2017-11-02 8 views
1

私はパラメータのメソッドにnull値を渡すこともNULL値を返すことができますJavaで機能があります:PHPタイピングとnull値

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で動作するのか、私は何もできませんか?

答えて

2

php7.1では、型の先頭に疑問符(?)を付けることで、null可能な型が許可されます。ヌル可能なパラメーターを渡すか、ヌル可能な型を戻す関数を定義することができます。

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