面向对象的三大要素:封装;继承;多态;
面向对象;
传统的面向过程思想:
是一个人把所有事情干完,一个人走完所有过程;
现代面对对象思想:
把所有的事,分工给好多人,每个人完成一部分;
类的定义,通俗说就是定义了一个大的方法,完成了一部分的内容
包括了属性,和方法;
类和对象的区别;
类是代表了一些事或者物,区分为一个类,包含了许多的小类或者对象;
对象是代表了具体到某一个事或者物;
类的定义
class 类名 {
属性;
方法;
}
创建一个类的实例化对象:
1. $对象名 = new 类名();
2. $变量1 = '值1';
$对象 = new $变量名1();//可变类名(代表不同的类名创建这个对象)
3. $对象名 = new self; //self指代类本身,这行代码只能在类内部方法中使用。
4. $对象名2 = new $对象名1; 通过new对象创建一个新的对象
使用对象时;
一般都是使用属性,使用方法和使用常量
对象的传值,分为值传递和引用传递;默认为值传递;
类中的成员:
属性和方法的定义;
类中属性的定义:静态和一般的区别; 静态属性和方法是属于类的,一般方法和一般属性是属于对象的;
一般属性定义:
1.var $属性名 = '属性值'; 定义并赋值;
2.var $属性名; 也可以定义不赋值;
3.public $属性名; 这个也是定义不赋值 public 可以代替var 并比var更加正式;
4.public $属性名 = '属性值'; 定义并赋值;
属性的使用:
$对象名->属性名='属性值';(属性名不加$符号);
可以直接输出这个对象的默认属性值;
echo $对象->属性名;
静态属性定义:
static $属性名 = '属性值';
静态属性的调用; 调用时用 :: 双冒号语法
类::$静态属性名;
对象也可以调用静态属性;但是没有提示,写死也可以出效果,但是不推荐;
一般方法定义: 方法前可以加public 意思的公共的都能调用
function 方法名(里面可以加参数){
}
一般方法的调用:
$对象名->方法名(里面可以加相应的实参);(调用方法的时候要加小括号);
方法中 $this关键字是一个伪对象,代表当前类的对象
可以用$this来代表当前类; $this->属性名,表示调用默认的属性;
一般方法中可以调用静态方法;
静态方法定义:
static function 方法名(){
}
静态方法的调用: 同样用 :: 双冒号语法
类名::静态方法名();
静态方法中,不可以调用一般方法,不可以用$this;
不可以被对象所调用;
self:代表当前类,
同样的在方法里输出 return new self;
在调用这个方法的时候,就能得到一个对象;这个类的对象
构造方法:
在创建对象时会自己执行;默认是空,也可以写出来执行一些方法,通常用来情况值;
function __construct(){
执行的内容:
}
析构方法:
创建的对象在PHP文件执行完毕后销毁对象,默认不写;就是销毁对象,
function __destruct(){
执行的内容:
}
class p { public $v1 =1; // 构造方法 function __construct($n){ $this->v1 = $n; echo "<br/>被创建了"; } // 析构方法 function __destruct(){ echo "<br/>被销毁了"; } } echo "<hr>"; $p1 = new p(5); $p2 = new p(15); unset($p1); echo "<hr>";
用unset() 也可以销毁对象