幻令 发表于 2018-7-23 13:31:13

class(面向对象)-php快速入门系列教程

class
主讲人: 幻令
博客:https://blog.icodef.com
论坛:https://www.eruyi.cn

概念
感觉我讲起来会很混乱,先写上一些,以从书柜中拿书看,看完归还为例子,精神值为0时停止看书

面向过程
将问题分为一个一个的步骤
如果是面向过程的解决方案就是这样:
拿书->看书->判断精神值->翻页->看书->判断精神值->翻页->看书->判断精神值(为0了)->归还
将我的各个动作化为一个一个的步骤(函数),然后实现这一整个流程

面向对象
将构成问题的各个事物分解成各个对象
如果是面向过程的解决方案就是:
将人,书和书柜抽象为三个类
人有看的方法和精神值,书的属性
书有翻页的方法和页码的属性(书名,书id也可作为属性,这里不探讨了)
书柜有拿书,放书的方法
这时候我们的类就抽象好了
然后实例化书柜和人
调用书柜的拿书方法获得一本(实例化)书给人的书属性
人调用看的方法,并且减精神值,然后调用书的翻页方法,书页码+1,完成之后判断精神值,决定继续调用看还是放书


具有相同方法和属性的对象就是一类,类的实例化就是对象
像上面,虽然这里的例子是每一个类都是只有一个对象
但是我也可以实例化多个,每一个有着不同的属性值,例如书,每一本我赋予不同的名字,或者书的isbn码等等

实例化
实例化是指在面向对象的编程中,通常把类创建对象的过程称为实例化

class
class book{

    public $page=1;//属性

    public function pageTurn(){//方法
      echo '书翻页<br/>';
    }

}



构造函数 & 析构函数
class a{
    public function __construct(){
      echo "构造函数";
    }

    function __destruct(){
      echo "析构函数";
    }
}

实例化

$p=new people();


静态成员

class a{
    public static $attr=10;
}
echo a::$attr;
类常量

class a{
    const a='常量无法被改变';
}


**** Hidden Message *****


影思 发表于 2022-12-11 10:34:22

谢谢分享

nbdy 发表于 2021-10-9 10:33:37

回复看了

夏半笙 发表于 2021-8-8 07:29:11

学习学习

pnf 发表于 2020-11-5 21:31:48

6666666666666666

小蚂蚁 发表于 2020-3-28 14:23:17

6666666666666

Finpy 发表于 2020-3-28 12:00:52

学习学习

dangyunsheng 发表于 2020-2-25 17:20:47

学习一下

17837177264 发表于 2019-11-3 15:04:53

pouyikhjgmnbcvxc

厚朴 发表于 2019-9-19 11:50:10

感觉解释的不详细
页: [1] 2 3
查看完整版本: class(面向对象)-php快速入门系列教程