<?php
class Foo{
public $var;
public function set(?int $value){
$this->var = $value;
}
}
$foo = new Foo();
$foo->set(null);
var_dump($foo);
$foo->set(1);
var_dump($foo);
$foo->set();
var_dump($foo);
object(Foo)#1 (1) {
["var"]=>
NULL
}
object(Foo)#1 (1) {
["var"]=>
int(1)
}
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Foo::set(), 0 passed in /in/n3FrG on line 16 and exactly 1 expected in /in/n3FrG:6
Stack trace:
#0 /in/n3FrG(16): Foo->set()
#1 {main}
thrown in /in/n3FrG on line 6
Process exited with code 255.
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /in/n3FrG on line 6
Process exited with code 255.