将 void 作为参数传递和不将其传递给函数有什么区别?
what is difference between passing void as a parameter and not passing it to function?
我在阅读 php 手册中的代码时感到困惑 --
下面两种语法有什么区别--
final public string Exception::getMessage ()
对比
final public string Exception::getMessage ( void )
正如 Manuel 所说,此函数没有参数,那么将 void 传递到那里的目的是什么。虽然它自己是空的,但表示它会被注意到。所以我的问题是--
1- 两种语法中哪一种是最标准的方式,为什么?
嗯,let's try:
class Foo{
function bar(void){
}
}
Fatal error: syntax error, unexpected ')', expecting '&' or T_VARIABLE or ... in /in/FB6Wb on line 4
所以区别在于前者实际运行:)
说真的,这只不过是文档中用于解释方法签名的语法,您不需要按原样键入。该语法使用 pseudo-types to express variables and you can check the How to read a function definition (prototype) 附件来掌握其他语法位(例如对可选参数使用方括号)。
void
不是实际的语言结构。手册中只是装饰用的。
见http://php.net/manual/en/language.pseudo-types.php
(死link)
void
void as a return type means that the return value is useless. void in a parameter list means that the function doesn't accept any parameters.
PHP Manual, © 1997-2015 the PHP Documentation Group, CC-BY-SA 3.0
我在阅读 php 手册中的代码时感到困惑 --
下面两种语法有什么区别--
final public string Exception::getMessage ()
对比
final public string Exception::getMessage ( void )
正如 Manuel 所说,此函数没有参数,那么将 void 传递到那里的目的是什么。虽然它自己是空的,但表示它会被注意到。所以我的问题是--
1- 两种语法中哪一种是最标准的方式,为什么?
嗯,let's try:
class Foo{
function bar(void){
}
}
Fatal error: syntax error, unexpected ')', expecting '&' or T_VARIABLE or ... in /in/FB6Wb on line 4
所以区别在于前者实际运行:)
说真的,这只不过是文档中用于解释方法签名的语法,您不需要按原样键入。该语法使用 pseudo-types to express variables and you can check the How to read a function definition (prototype) 附件来掌握其他语法位(例如对可选参数使用方括号)。
void
不是实际的语言结构。手册中只是装饰用的。
见(死link)http://php.net/manual/en/language.pseudo-types.php
void
void as a return type means that the return value is useless. void in a parameter list means that the function doesn't accept any parameters.
PHP Manual, © 1997-2015 the PHP Documentation Group, CC-BY-SA 3.0