# 面象对象之前-面向过程编程 1、面象对象之前,是没有对象的,就是函数。代码都由函数构成。 以一个 “书”为类子。 - - - - - - 2、“书”的面象过程 ``` <pre class="calibre7">``` public function add_book($data) { ... } public function del_book($id) { ... } public function change_book($id, $data) { ... } public function get_book_by_id($id) { ... } ``` ``` 3、“书”的面象对象 ``` <pre class="calibre7">``` class Book extend \think\Model { public function add($data) { .. } public function del($id) { .. } public function change($id) { .. } public function getById($id) { ... } } ``` ``` 4。函数是没有属性的,值只能通过参数传递。 例如要对一本数涨价。 ``` <pre class="calibre7">``` //面得过程 $book = get_book_by_id($id); $book['price'] += 10; change_book($id, $book); ``` ``` ``` <pre class="calibre7">``` //面得对象 $book = Book::find($id); $book->price += 10; $book->save(); ``` ``` 5。面像对象,可以“自动加载"。 面向过程,要么把所有用到的函数一次性都 require 加载进来,要么在每个用到的文件第一行, require\_once('./xxxx.php')。一般情况是使用前者,因为简单。但是性能当然有影响啊。