公共函数与 CodeIgniter 中的函数

Posted

技术标签:

【中文标题】公共函数与 CodeIgniter 中的函数【英文标题】:Public functions vs Functions in 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 是更好的做法吗?为什么?

【问题讨论】:

【参考方案1】:

根据PHP.net

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

来自docs here

【讨论】:

【参考方案5】:

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

【讨论】:

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

【讨论】:

以上是关于公共函数与 CodeIgniter 中的函数的主要内容,如果未能解决你的问题,请参考以下文章

具体类中的受保护构造函数与抽象类中的公共构造函数

codeigniter 中的 Ajax 表单验证

使用分页时的 Codeigniter url 重写问题

Codeigniter 数据中的 MySQL 函数

如何使用 CodeIgniter 中的 AJAX 函数更改网页的数据

Codeigniter 表单验证无法与自定义回调函数一样工作