PHP类的学习笔记要点

1、修饰符
和其他面向对象语言一样,PHP的修饰符有三个,分别是public、protected、private。

修饰符的作用只有一个,控制属性、方法(函数)的可见性,具体的可见性如下表。

修饰符类内子类内(类及子类)的外部
public可操作可操作可操作
private可操作不可操作不可操作
protected可操作可操作不可操作

2、构造方法(函数)和析构方法(函数)
构造方法和析构方法允许在类的初始化时和销毁时执行某些操作,PHP的构造方法允许传递参数,但是析构方法不行。

PHP的构造方法的声明和其他方法一样,只是名称必须规定是_construct(),其中名称前面是2个下划线 ’ ’ ;析构方法也是同理。

2-1、PHP的构造方法
__construct()

2-2、PHP的析构方法
__destruct()

3、属性的相关操作
一般来说,对于类内的属性,不建议在初始化对象后直接获取和设置值,而是通过方法来进行赋值和获取值的操作。

例如:

class car
{
    /* 给定一个初始值 */
    private $color = 'white';

    public function getColor(){
        return $this->color;
    }
    public function setColor($color){
        $this->color = $color;
    }
}

虽说这样代码变多了点,操作麻烦了点,但是好处是可见的。不仅代码变得规范,而且代码的可读性也高,在对类进行初始化后的操作,也一目了然。

4、继承
面向对象的三大特性分别是:封装、继承、多态。所以,讲到类的时候不得不讲继承。

在PHP中,类的继承通过extends来实现。

例如:

class A
{
    public $attr1 = 'attr1';
    public function oper1(){
        echo 'this is class A';
    }
}

class B extends A
{
    public $attr2 = 'attr2';
    public function oper2(){
        echo 'this is class B';
    }
}

/* 然后再类外初始化B */
$b = new B();
$b->oper1();
$b->oper2();

在上述的例子中,class B的对象$b能调用class A的方法而不会报错,这就是继承的作用。

但,并不是所有的方法和属性都会被继承,只有修饰符为public和protected的方法和属性才会被继承,如果属性和方法前不带修饰符,默认为public。

4-1、重载

PHP允许对父类的属性和方法进行重载,具体使用为定义与父类相同的属性或方法即可。

注:重载可改变属性/方法的可见性(也就是修饰符)

<?php
    header('content-type:text/html;charset=utf-8');
    class A
    {
        protected $attr1 = 'A类的属性1';

    }

    class B extends A
    {
        public $attr1 = '继承A类的B类的属性1';
    }

    $b = new B();

    echo $b->attr1;
?>

最后页面显示如下:
这里写图片描述

4-2、多继承

PHP不支持多继承。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值