2011-08-29 129 views
0

我有一个很简单的问题,但我想知道: 时候和为什么它更好地使用简单的功能,以及何时和为什么它是更好地使用类简单的函数或类?

+2

这真的是PHP特有的吗? – lonesomeday

+2

这个问题听起来很简单,但答案并不简单。 –

+1

可能重复的:http://stackoverflow.com/questions/2122123/when-to-use-a-class-vs-function-in-php –

回答

3

我有一个简单的答案:

使用类时,你需要使用对象来对待,尤其是当你需要同时调用函数中留存数据。

当你从输入只输出,不访问任何其他变量

使用简单功能。

例子:

class Basket { 
    private $apples = 0; 

    public function fill() { 
    $this->apples = 100; 
    } 

    public function take($count) { 
    $this->apples -= $count; 
    } 

    public function applesInBasket() { 
    return $this->apples; 
    } 
} 

/* simple */ function wrap_with_div($content) { 
    return "<div>$content</div>"; 
} 
0

它始终是更好地使用类。职能污染全球空间。

+2

类污染全球空间太大。 'MyLibrary_MyFunction'和'MyLibraryClass :: MyFunction'有什么区别?伪命名空间的静态类仅仅是说你知道面向对象的借口。 – GolezTrol

1

功能是处理的一个简单的单元(可以)采取一些输入和(可)吐出出来的东西。 类通常是一段数据的表示,以及处理该数据的一些功能(方法)。但没有严格的分离。在Java等更多的OO语言中,大多数(或全部)类型都是类。即使将整数转换为字符串也是通过调用整数上的方法来完成的。在PHP中,这通常是松散的功能。

有时候你得到的选择。您可以使用mysql *函数并在每次调用时将资源传递给它们,或者可以使用类变体,其中对象是资源,函数是方法(当然省略了第一个参数)。

在这种情况下,我会选择使用对象符号,但除此之外,它只是一个品味的问题。