为什么我必须使用必需的参数?

时间:2012-05-31 作者:Reshat Belyalov

为什么,当我想使用

add_filter( \'author_link\', \'foo\', 10, 3 );
function foo ( $link, $author_id, $author_nicename ) {}
我必须使用3个必需的参数?为什么我不能这样做:

add_filter( \'author_link\', \'foo\' );
function foo ( $author_id ) {}
如果可以,请给我一些关于这方面的文献。

PS WP初学者。

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

您没有指定参数的数量,在这种情况下,它将默认为一个。

从本质上讲,这个参数让您可以控制钩子将传递给函数的参数数量,这在大多数情况下都很重要,无法给出一般性的解释。

简而言之,如果hook可以传递N个参数,那么您可以选择:

传递1参数(默认值)

  • 传递(<=N通过指定number传递的参数不会通过指定0传递任何参数(罕见,但有时非常有用)。请注意,如果需要N,则无法更改传递的参数的顺序,如果需要N,则需要传递尽可能多的参数,然后忽略函数中不需要的参数(这只在少数挂钩中有意义,因为第一个参数往往是有意义的,很少是第二个)。

  • SO网友:Joshua Abenazer

    如果您只需要第一个参数来完成工作,则无需指定参数的数量。如果您正在编写的函数可能需要额外的信息(参数),则需要指定参数的数目。

    第一个参数实际上是您应该在函数中返回的内容。其他参数充当助手,以获得所需的输出。

    结束

    相关推荐

    如何在_Author_meta(‘Description’)中显示<a>标签属性Target;

    我面临以下问题:假设用户已使用标记和target \\u blank属性将其推特id粘贴到“Biographical info”文本区域中,但结果为\\u author\\u meta(\'描述\');丢弃了标记的属性目标\\u为空。有什么解决方案吗?谢谢