【问题标题】:Public functions vs Functions in CodeIgniter公共函数与 CodeIgniter 中的函数
【发布时间】:2012-04-08 15:35:26
【问题描述】:

在PHP中,在类中声明方法有什么区别

public function VS function

例如:

public function contact()
{
    $data['header'] = "Contact";
    $this->load->view('admin/admin_contact', $data);
}

VS

function contact()
{
    $data['header'] = "Contact";
    $this->load->view('admin/admin_contact', $data);
}

使用 public functionfunction 是更好的做法吗?为什么?

【问题讨论】:

    标签: php function codeigniter methods


    【解决方案1】:

    根据PHP.net

    类方法可以定义为公共的、私有的或受保护的。 声明没有任何显式可见性关键字的方法被定义为公共

    为了获得最佳实践,我建议使用可见性关键字(尤其是在使用更高版本的 PHP 时)。它可以防止混淆(就像您现在所处的那样)并促进编码的标准实践。

    【讨论】:

      【解决方案2】:

      使用任何显式可见性关键字声明的方法是最佳实践。它看起来和感觉更好,并且不会混淆人们。

      • 大多数 PHP5 编码约定(例如 Zend、Symfony...)都需要 public 关键字,因此很熟悉。
      • 这意味着变量和方法声明使用相同的语法。
      • 它更加明确,并迫使开发人员考虑他们的方法 能见度。

      【讨论】:

        【解决方案3】:

        这两者没有区别。 两者都是一样的。 在codeigniter中两者具有相同的含义 并且可以通过使用标准 URI 标记来调用,除非您在函数名称前给出“_” _fname() 不会被调用

        【讨论】:

          【解决方案4】:

          它们是一样的......如果你不指定可见性方法/函数被声明为public

          没有任何显式可见性关键字声明的方法被定义为公共

          来自docs here

          【讨论】:

            【解决方案5】:

            如果您真的想要最佳实践,您将始终使用 public。但是对于 codeigniter 框架来说,无论你是否将其声明为 public,它都无关紧要。请注意,如果您希望控制器是私有的,则不要使用私有,但您将在控制器名称前使用下划线 (_),以便它不可见。

            【讨论】:

              【解决方案6】:
              • 两个声明是相同的,两个函数都可以通过 codeigniter 中的 URI 请求获得
              • 要防止用户调用方法,请使用私有或受保护的访问说明符。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-12-28
                • 2023-03-08
                • 1970-01-01
                • 2014-03-21
                相关资源
                最近更新 更多