Fry*_*Pan 6 php parameters nullable function
我想问一下两者是否相同,如果不同的话,它们之间的区别在哪里:
/**
* @param int|null $id Any id.
*/
public function testSomething(int $id = null) {}
Run Code Online (Sandbox Code Playgroud)
和
/**
* @param int|null $id Any id.
*/
public function testSomething(?int $id) {}
Run Code Online (Sandbox Code Playgroud)
谢谢您的回答!
小智 5
这不一样。第一个函数声明:
public function testSomething(int $id = null) {}
Run Code Online (Sandbox Code Playgroud)
如果调用不带参数的函数,则将默认值设置为 null。
第二个定义:
public function testSomething(?int $id) {}
Run Code Online (Sandbox Code Playgroud)
将接受空值作为第一个参数,但如果参数丢失,则不会将其设置为默认值。因此,如果您以第二种方式调用该函数,则始终需要有一个参数。