【问题标题】:CodeIgniter - Private Functions Access?CodeIgniter - 私有函数访问?
【发布时间】:2017-05-16 16:22:02
【问题描述】:

当我们在控制器中将函数设为私有时,浏览器中的 URL 将无法访问它。 我阅读了文档,仅此而已,甚至无法在互联网上找到它。

问题是。 私有函数不能通过 URL 直接访问。 那么我们如何访问它们呢? 如何找到他们? 如何使用私有函数...?

【问题讨论】:

  • 私有函数具有类范围。您可以从私有函数所在的类中的其他函数中调用该函数,也可以从该类中的其他任何地方调用该函数。
  • 在其他函数中使用同一个类的函数是什么原因?它对我们有什么帮助?什么情况下好用?
  • @AdriannoBarello - 在尝试其他任何事情之前先阅读 tereško 的建议。

标签: php function codeigniter frameworks


【解决方案1】:

您可以在控制器内部使用$this 访问该功能。

class T1 extends CI_Controller{

 public function fun1()
 {
  echo $this->fun2(5,6);
 }
 private function fun2($x,$y)
 {
   return $x+$y;
 }
}

Output: 
URL: http://localhost/myproject/t1/fun1
11

【讨论】:

  • 为什么在同一控制器中的其他函数使用控制器内的函数?这种函数(fun2)不应该在Model里面吗?尤其是当这种计算(x+y)即使没有模型也可以在 fun1 中完成时。
  • @AdriannoBarello 这只是一个例子,与实时情况没有联系。
  • 好的,但是什么情况下可以实时使用这个方法呢?什么时候舒服/推荐使用,mmmm....
【解决方案2】:

这是一个很好的问题,如果方法不可访问你是正确的为什么你想要一个方法,如果它是可访问的为什么你需要将它定义为私有的。 这与你的php知识无关。

这些方法可以从同一个类中的另一个方法调用,一个实际的用法是你可以在另一个方法中检查会话变量后调用它,例如只有当用户登录时才调用该方法。它将在调用方法中提供代码简单性。 如果您不将其设为私人用户,则无需登录即可直接访问它

【讨论】:

    猜你喜欢
    • 2021-07-23
    • 2021-04-17
    • 2019-06-19
    • 2023-03-04
    • 1970-01-01
    • 2015-10-12
    • 2011-05-03
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多