0

我有这样的功能:

private static function myfun(
    string $param1,
    :xhp $param2,
  ): :xhp {
    return
      //somethinf
  }

我不想将任何东西作为param2传递。我怎样才能做到这一点 ?当我尝试这样做时:

myfun("Hi",null), 

它向我显示错误。

4

2 回答 2

2

为了能够传入null,您的类型提示必须允许它。在 Hack 中,这是通过使用可为空的类型来完成的。

private static function myfun(
    string $param1,
    ?:xhp $param2,
): :xhp {
    return
      //somethinf
}

然后,Hack 类型检查器还将确保您$param2在使用它之前检查不为空。

于 2017-06-22T22:19:51.013 回答
0

这是诀窍吗? private static function myfun( string $param1, :xhp $param2=null, ): :xhp { return //somethinf }

于 2017-06-22T10:01:33.487 回答