Учитывая это объяснение
Обнуляемые типы: объявления типов для параметров и возвращаемых значений теперь могут быть помечены как обнуляемые, если перед именем типа ставится знак вопроса. Это означает, что, как и указанный тип, NULL может передаваться в качестве аргумента или возвращаться в качестве значения соответственно.
Следующий код:
public function test(?int $var) {
}
Означает, что test()
можно вызывать с $var
либо как int
, либо как null
.
И следующий код:
public function test(int $var = null) {
}
Означает, что test()
можно вызывать с $var
либо как int
, либо как null
.
Каковы различия между этими двумя методами? Является ли один из них более производительным, чем другой?