我正在学习 CodeIgniter (CI)。我已经看到 CI 支持 OOP 概念,但我想知道在网络和论坛上的每个示例中,控制器中声明的方法都使用 public 关键字。我认为这不是一个愚蠢的问题。即使在 CI 用户指南中,我也看到他们总是使用 public 关键字。那么封装会发生什么?
你能帮我解决这个问题吗?
我正在学习 CodeIgniter (CI)。我已经看到 CI 支持 OOP 概念,但我想知道在网络和论坛上的每个示例中,控制器中声明的方法都使用 public 关键字。我认为这不是一个愚蠢的问题。即使在 CI 用户指南中,我也看到他们总是使用 public 关键字。那么封装会发生什么?
你能帮我解决这个问题吗?
众所周知,CI是MVC框架
如图所示,视图可以调用控制器和模型。控制器可以调用模型和视图,模型可以调用视图。在这种情况下,控制器中的大多数方法都由视图调用,并且该函数具有处理来自视图的请求的逻辑。我们可以在控制器和模型中编写私有方法,这只能从同一个类中调用(如你所说, 大部分例子都试图说明 CI 的一个特性,不需要写私有方法,即你不熟悉私有方法——这只会在更结构化的应用程序中使用)。没有关于封装和全部。``
控制器中的方法实际上是由 CI 本身调用的。如果它不是公共 CI 不能调用并且您的控制器将无法工作。这就是为什么所有的行动方法都需要public
。您可以制作其他方法private
或protected
.
我想说,如果您想遵循良好的编程习惯并编写易于遵循的代码,请添加public
到您的方法中。否则不要。(我知道我现在会得到你们中的一些正统程序员!)
PHP5 方法默认为public
未说明的地方。
没有任何显式可见性关键字声明的方法被定义为公共的。
来源:http ://www.php.net/manual/en/language.oop5.visibility.php