使用PHP中的类存储函数
我需要一些关于我的PHP代码组织的建议 我需要可以存储不同函数的类,并且需要访问项目不同部分中的类。每次都为这个类创建一个对象实在是太悲哀了,所以我找到了两种方法来解决这个问题 首先是使用静态方法,比如使用PHP中的类存储函数,php,Php,我需要一些关于我的PHP代码组织的建议 我需要可以存储不同函数的类,并且需要访问项目不同部分中的类。每次都为这个类创建一个对象实在是太悲哀了,所以我找到了两种方法来解决这个问题 首先是使用静态方法,比如 class car { public static $wheels_count = 4; public static function change_wheels_count($new_count) { car::$wheels_count = $new_count; } } 二是使
class car {
public static $wheels_count = 4;
public static function change_wheels_count($new_count) {
car::$wheels_count = $new_count;
} }
二是使用单例模式:
class Example {
// Hold an instance of the class
private static $instance;
// The singleton method
public static function singleton()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
} }
但这篇关于单例的文章的作者说,如果我的代码中有太多的单例,我应该重建它。但是我需要很多这样的课程
有人能解释每种方法的利弊吗?哪个是最常用的?还有更好的方法吗?请看这篇精彩的帖子: 更多资源:
请看这篇精彩的文章: 更多资源:
当您说需要使用某种类型的类来存储函数时,我假定您通常可以使用普通函数,但您不想污染全局范围。在PHP中,您将一直遇到这个问题 如果您有幸使用PHP5.3,您可以使用名称空间将函数从全局范围中拉出。实际上,名称空间是一种方便的方法,可以自动完成函数中通常使用的前缀,以尝试确保它们的唯一性。由于这种基本实现,名称空间没有可用的访问控制。如果你想设计一个接口,那就太倒霉了,因为所有函数都是全局可访问的 在这种情况下,使用静态类。不,这当然不是最漂亮的解决方案,但它确实是PHP所能提供的最好的解决方案。使用静态类,您可以有效地为函数添加前缀以实现唯一性,并使用访问控制 单例是一个面向对象的概念,可以解决不同的问题。如果您的原始设计不涉及任何对象,现在就不要介绍它们
也就是说,您有一个名为
change\u wheels\u count()
的函数。这个函数有一个状态的概念,当您需要状态时,您就需要一个对象。我不知道你的代码是一个简单的例子还是你的实际情况。如果这是您的实际情况,我会说您既不需要静态类也不需要单例。当您说您需要使用某种类型的类来存储函数时,我假定您通常可以使用普通函数,但您不想污染全局范围。在PHP中,您将一直遇到这个问题
如果您有幸使用PHP5.3,您可以使用名称空间将函数从全局范围中拉出。实际上,名称空间是一种方便的方法,可以自动完成函数中通常使用的前缀,以尝试确保它们的唯一性。由于这种基本实现,名称空间没有可用的访问控制。如果你想设计一个接口,那就太倒霉了,因为所有函数都是全局可访问的
在这种情况下,使用静态类。不,这当然不是最漂亮的解决方案,但它确实是PHP所能提供的最好的解决方案。使用静态类,您可以有效地为函数添加前缀以实现唯一性,并使用访问控制
单例是一个面向对象的概念,可以解决不同的问题。如果您的原始设计不涉及任何对象,现在就不要介绍它们
也就是说,您有一个名为
change\u wheels\u count()
的函数。这个函数有一个状态的概念,当您需要状态时,您就需要一个对象。我不知道你的代码是一个简单的例子还是你的实际情况。如果这是您的实际情况,我会说您既不需要静态类也不需要单例。欢迎使用。看看这个:欢迎来到SO。看看这个:非常感谢!非常有帮助。非常感谢!这非常有帮助。