<?php
class newProfileTabs_Listener
{
public static function template_hook ($hookName, &$contents, array $hookParams, XenForo_Template_Abstract $template)
{
if ($hookName == 'member_view_tabs_heading')
{
$contents .= '<li><a href="{$requestPaths.requestUri}#ourTab">Our Tab</a></li>';
}
}
}
?>
问题:
我在上面看到了php文件,static
默认为public
,对吗?那么为什么放public static function
而不是static function
,是否有任何理由呢?
答案 0 :(得分:3)
虽然static
函数实际上可以定义为protected
和private
(考虑另一种公用静态方法使用的一些实用方法),但你是对的,默认情况下它是{{ 1}}。
实际上,默认情况下非静态方法也是public
。引用doc:
类方法可以定义为
public
,public
或private
。方法 声明没有任何显式可见性关键字被定义为 公开强>
为什么明确指定此修饰符?好吧,可能它是由PHP团队编写的,支持Python的最大值:explicit is better than implicit。这种方法最明显的优点之一是代码的一致性:对于每个方法,都有一个清晰可见的修饰符。
这就是为什么这样的规则......
类必须内的方法总是声明它们的可见性 使用私有,受保护或公共可见性修饰符之一。
......在许多团队和项目的编码惯例中并不是一致的(这个特殊规则是ZF2 coding standards引用的。)