1 面向过程&面向对象 |
1、专注于解决一个问题的过程。面向过程的最大特点,是由一个一个的函数去解决处理这个问题的一系列过程。
2、专注于由那个对象来处理一个问题。面向对象的最大特点,是有一个个具有属性和功能的类,从类中拿到对象,进而处理问题。
2 面向对象 |
1、什么是类?
具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念
2、什么事对象?
从类中,拿到的具有具体属性值的个体,称为对象。对象是一个具体的个体
3、类与对象的关系?
类是对象的抽象化!对象是类的具体化!
类仅仅表明这类对象有哪些属性,但是不能具有具体的值,所以类是抽象的
而对象,是将类的所有属性赋值后,产生的具体个体,所有对象是具体的
3 类的声明与实例化 |
1、如何声明一个类:
class 类名{
访问修饰符 $属性[=默认值];
[访问修饰符 ]function 方法(){}
}
2、声明一个类的注意事项:
①类名之内有数字字母下划线组成,开头不能使数字,必须符合大驼峰法则
②类名必须使用class修饰,类名后面一定不能有();
③属性必须要带访问修饰符,方法可以不带访问修饰符;
3、实例化对象及对象属性方法的调用?
$对象名 = new 类名(); //()可以不加
类外部调用属性和方法
$对象名 -> 属性名; //使用->调用属性时,属性名不能带$
类内部调用属性和方法
$this -> 属性名;
4 构造函数 |
1、什么是构造函数?
构造函数是类中的一个特殊函数,当我们使用new关键字实例化对象时,相当于调用了类的构造函数;
2、构造函数有什么作用?
实例化对象时,自动调用,用于给对象的属性赋初值!
3、构造函数的写法?
①构造函数名,必须与类同名
[public ]function Person($name){
$this -> name = $name;
}
②使用魔术方法__construct
[public ]function __construct($name){
$this -> name = $name;
}
4、构造函数注意事项:
①第一种写法,构造函数名必须与类同名!!!
②如果一个类没有手写构造函数,则系统默认会有一个空参数构造,因此可以使用new Person();
如果我们写了带参数的构造函数,则将不会再有空参构造,也就是不能直接使用new Person(); Person后面的()中的参数列表,必须符合
构造函数的要求!!
③如果两种结构函数同时存在,将使用__construct。
5、析构函数:__destruct():
①析构函数在对象被销毁释放之前自动调用!
②析构函数不能带有参数
③析构函数常用于对象使用完以后,释放资源、关闭资源等
6、魔术方法:
PHP中,给我们提供了一系列的__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。
例如:function __construct(){} 在类new一个对象时自动使用
function __destruct(){} 在对象被销毁时自动调用
我们要求除了魔术方法外,自定义的函数与方法不能使用__开头
最后,一般对于功能比较复杂的类,我们会单独的写到一个类的文件中。
类文件的命名,统一小写,使用“类名(小写).class.php”的方式命名。
在其他文件中使用这个类 时,可以用include导入这个.class.php文件。