php 面向对象
1类的创建 class创建类
class Person{}
2.对象的创建 使用new关键字
class Person{}
$p1=new Person
3.成员的添加
添加成员需要 三个修饰符
public 公开的 定义公共的属性和方法,类的外部,类的内部,子类都可以使用
protected 受保护的 定义受保护的属性和方法 值能在类的内部和子类里使用
private 私有的 定义私有的属性和方法 只能在自身的类里使用
方法成员如果前面不加修饰符 默认是public
4.成员调用使用->符号
$p1=new Person
$p1->fn()
使用成员属性和方法的时候 属性和方法前面不带$符
$p1=new Person $p1->fn() echo $p1->name
5.特殊对象$this指向实例化的对象,如果类的方法里想使用类的其他属性和方法得需要使用$this对象
public $name=“lisi”;
public function fn(){
echo $this->name;
}
6.构造方法 function__construct()构造函数在new实例化的时候系统会自动调用
public $name=“lisi”;
function __construct($name){
$this->name=$name;
}
public function fn(){
echo $this->name
}
7.析构方法
我们每次new实例化,系统就会给这个对象分配一个内存空间,如果不销毁,系统压力会很大,系统有一个析构方法__destruct 对象实例化之后系统会自动调用。内存销毁的原则是先进后销。
function __destruct(){
echo “delete”.$this->name."<br/>";
}
}
$p1=new Person("xiaosi");
$p2=new Person("xiaowang")
8.成员赋值
$p1->name="456";
echo $p1->name;
9.php中的继承使用关键字 extends
class Person {
public $name="lisi";
public function fn(){
echo 111111
}
class Child extends Person{}
}
$c=new Child
$c->fn()
10.类中常量 使用const关键字定义常量,常量在定义和使用的时候不能带$符。
使用的时候不能用$this 使用范围修饰::前面还是这个类名或self
const ad=“xiaoxu”;
public $name="lisi";
public function fn(){
echo self::ad;}
如果向子类访问父类中的常量 使用parent::常量名
class Person{
const ad="xiaoxu1111";
public $name="lisi1111";
public function fn(){
echo self::ad;}
}
class Child axtends Person{
function ff(){
echo parent::ad;
}
}
$c=new Child
11. 静态变量 在变量前加上关键字 static 静态属性 不能使用->访问了,使用类名::$变量名;
class Person{
public static $name="132";
}
$p=new Person;
echo Person::$name;
12.重载 覆盖
子类继承父类的方法时,如果子类有和父类同名的方法,从父类那继承的方法就会被覆盖掉,这个就叫重载。
如果父类的方法前面加上final 则子类无法重载父类的发发,就会报错。
class Person{
const ad=“xiaoxu111”;
public $name="lisi1111"
public final function fn(){
echo self:ad
}
}
class Child extends Person{
function fn(){
echo "11111"
}
}
$c=new Child;
$c->fn()