【发布时间】:2011-11-05 22:48:12
【问题描述】:
我有一个非常简单的问题,但我想知道: 什么时候和为什么最好使用简单的函数,什么时候和为什么最好使用类?
【问题讨论】:
-
这个问题听起来很简单,但答案并不简单。
我有一个非常简单的问题,但我想知道: 什么时候和为什么最好使用简单的函数,什么时候和为什么最好使用类?
【问题讨论】:
我的答案很简单:
当您需要处理对象时使用类,尤其是当您需要在调用函数时持久化数据时。
当您刚刚从输入输出时使用简单函数,而不访问任何其他变量。
例子:
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>";
}
【讨论】:
函数是一个简单的处理单元,它(可以)接受一些输入并(可以)输出一些东西。 类通常是一段数据的表示,以及处理该数据的一些功能(方法)。但是没有严格的区分。在像 Java 这样的更多 OO 语言中,大多数(或所有)类型都是类。甚至将整数转换为字符串也是通过调用整数上的方法来完成的。在 PHP 中,这通常在一个松散的函数中完成。
有时您可以选择。您可以使用 mysql* 函数并在每次调用时将资源传递给它们,或者您可以使用类变体,其中对象是资源,函数是方法(当然,省略了第一个参数)。
在这些情况下,我会选择使用对象表示法,否则只是个人喜好问题。
【讨论】:
使用类总是更好。函数污染全局空间。
【讨论】:
MyLibrary_MyFunction 和 MyLibraryClass::MyFunction 有什么区别?伪造命名空间的静态类只是说你知道 OO 的借口。