PHP类应该用于此吗?

时间:2011-12-03 23:44:19

标签: php oop class

我正在尝试使用一个类声明一组约20个公共函数是否合适:

if (!class_exists('example')) { 

    class example {

        # Declare ~20 functions (methods), all of
        # which are public. (There's nothing else
        # in the class.)

        public static function one() { /* ... */ }
        public static function two() { /* ... */ }
        # ...

    } # class 

}

使方法可用:

example::one();
example::two();

上述方法 vs 有哪些优点/缺点。只是这样做:

if (!defined('EXAMPLE_LOADED')) {

    define('EXAMPLE_LOADED', true);

    function example_one() { /* ... */ }
    function example_two() { /* ... */ }
    # ... 

}

使功能可用:

example_one();
example_two();

编辑 - 相关的效果测试:

3 个答案:

答案 0 :(得分:3)

以下是有关此主题的链接。

When to use static vs instantiated classes

我还要说我以前将类似的函数分组为纯静态类。我喜欢它给出的语法糖。

format::usaPhone( $val );
format::usaZip( $val );
date::convertTz( $date, $tz1, $tz2 );

这样的东西。我建议你务必这样做,并确保你最终做的事情满足两件事。

  1. 您对结果感到满意。
  2. 生成的代码很有意义。
  3. 这可能听起来像是一个显而易见的陈述,但它是一个很好的提醒,当一个简单的解决方案出现时,不要过度思考。

答案 1 :(得分:1)

oop和功能程序方法之间的差异就是开销。

绝对是好的,他们可以对您的代码进行分组,更易于管理,并且它具有的主要功能使其理想的是您的代码将变得可重用,使其更加灵活,这就是为什么这种方法更适合大型项目或系统。 oop的缺点是它在开销方面更加昂贵,并且与功能方法相比甚至会更慢,尽管功能方法的性能要快得多,但它不会像oop那样可以重复使用,但它将全部依赖在你身上。

我给你的建议是,如果它真的是一个大项目你的处理然后oop是非常好的,但是如果你认为根本没有必要在oop上做那么去功能或者如果可能你也可以做程序比2更快的表现,但正如我所说,这一切都取决于你的策略。

答案 2 :(得分:0)

第一种情况增加抽象级别并帮助您分组(通常)辅助方法。

最佳做法是将您的示例类移到单独的文件中,然后在需要时进行制作

require_once('./path/to/example.class.php');