传递void作为参数而不传递给函数有什么区别?

时间:2015-09-24 11:32:29

标签: php void

从php mannual读取代码时我感到困惑 -

以下两种语法有什么区别 -

final public string Exception::getMessage () 

vs

final public string Exception::getMessage ( void ) 

Manuel说这个函数没有参数,那么在那里传递那个空隙的目的是什么。虽然无效但它的自我代表它会注意到。所以我的问题是 -

1-在两种语法中哪一种是最标准的方式?为什么?

http://php.net/manual/en/class.errorexception.php

2 个答案:

答案 0 :(得分:5)

void不是实际的语言结构。它仅用于手册中的装饰目的。

请参阅http://php.net/manual/en/language.pseudo-types.php

  

<强>空隙

     

void作为返回类型意味着返回值无用。参数列表中的void表示该函数不接受任何参数。

     

PHP手册,©1997-2015 PHP文档组,CC-BY-SA 3.0

答案 1 :(得分:4)

好吧,let's try

class Foo{
    function bar(void){
    }
}
  

致命错误:语法错误,意外&#39;)&#39;,期待&#39;&amp;&#39;或第4行的T_VARIABLE或...... in / in / FB6Wb

所以区别在于前者实际运行:)

现在认真地说,除了文档中用于解释方法签名的语法之外,您不应该按原样键入

我可能错了,但我认为手册本身并没有记录。一旦你阅读了大量文档,我想你会熟悉它。请参阅马里奥的答案,找到解释伪类型的链接。其他语法位(比如使用方括号作为可选参数)是一种广泛使用的惯例,其历史可以追溯到Unix的早期阶段,我认为它们并未在PHP手册中明确记录。