类。有什么意义?
我对PHP中的OOP相当陌生,我已经制作了几个基本的脚本,但没有什么令人印象深刻的。我真正从中得到的是,制作一个函数和它们的集合可能会更容易。include
类的结构似乎只是混淆了原本简单的过程。在将所有内容整理到一个类中时,它并没有真正添加任何功能。
所以我显然错过了一些东西。有人可以解释一下通过创建类添加了哪些功能吗?
我对PHP中的OOP相当陌生,我已经制作了几个基本的脚本,但没有什么令人印象深刻的。我真正从中得到的是,制作一个函数和它们的集合可能会更容易。include
类的结构似乎只是混淆了原本简单的过程。在将所有内容整理到一个类中时,它并没有真正添加任何功能。
所以我显然错过了一些东西。有人可以解释一下通过创建类添加了哪些功能吗?
类是面向对象设计(以及分别编程和分析)的概念,它们用于封装数据和方法。
其他面向对象的编程技术可能包括以下功能:
从一篇文章..top-15-best-practices-for-writing-super-read-code:
面向对象的编程可以帮助您创建结构良好的代码。但这并不意味着您需要完全放弃过程编程。实际上,创建两种风格的混合可以是好的。
从 http://java.sun.com/docs/books/tutorial/java/concepts/class.html:
在现实世界中,您经常会发现许多相同的单个对象。可能有成千上万的其他自行车存在,都是相同的品牌和型号。每辆自行车都是根据同一组蓝图构建的,因此包含相同的组件。在面向对象的术语中,我们说您的自行车是称为自行车的对象类的实例。类是从中创建各个对象的蓝图。
最后,一个关于过程和面向对象编程范式之间差异的简短YouTube视频...
虽然最初看起来只使用一组函数并包含它们可能更简单,但类有其优点。类可以存储变量,这些变量“稍后”存在。
这是一个来自 php.net
<?php
$item_name = 'Widget 22';
$item_price = 4.90;
$item_qty = 2;
$item_total = ($item_price * $item_qty);
echo "You ordered $item_qty $item_name @ \$$item_price for a total of: \$$item_total.";
?>
v.s:
<?php
class Item {
protected $name, $price, $qty, $total;
function __construct($name, $price) {
$this->name = $name;
$this->price = $price;
}
function calculate($qty) {
$this->total = number_format(($this->price * $qty), 2);
}
public function __toString() {
return "You ordered ($this->qty) '$this->name'" . ($this->qty == 1 ? "" : "s") .
" at \$$this->price, for a total of: \$$this->total.";
}
}
$widget22 = new Item("Widget 22", 4.90);
$widget22->calculate(2);
echo $widget22;
?>
另一个巨大的好处是,你可以做更多。假设您要计算另一件商品的价格并打印出来。您不必复制所有花哨的逻辑,只需调用new Item即可完成。