使用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; } } 二是使

我需要一些关于我的PHP代码组织的建议

我需要可以存储不同函数的类,并且需要访问项目不同部分中的类。每次都为这个类创建一个对象实在是太悲哀了,所以我找到了两种方法来解决这个问题

首先是使用静态方法,比如

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。看看这个:非常感谢!非常有帮助。非常感谢!这非常有帮助。