php学习八:封装

Posted 明明一颗大白菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php学习八:封装相关的知识,希望对你有一定的参考价值。

一:在php中,用class关键字来创建一个类,即进行封装;在类里面有成员属性和方法行为组成:

1.成员属性:用关键字var来声明,可以给初始值也可以不给;现在var废弃,用public来声明,public为共有属性,在任何地方都可以访问

 /*名称*/
    public $name = "房明";
    /*学号*/
    public $no;
    /*成绩*/
    public $score;

  

2.行为方法:和js中的函数类似,一般用public来声明

 /*唱歌*/
    public function sing($songName)
    {
        echo "学生会唱{$songName}歌";
    }

    /*跑步*/
    public function run()
    {
        return "学生去跑步了";
    }

  

特别注意:在类里面调用自己的属性和方法的时候,用到"$this->..."

 public function showSelf(){
        echo "我叫{$this->name},我的学号是{$this->no},我考了{$this->score}分,{$this->run()}";
    }

  

二:new关键字实例化对象

要想操作类里面的属性和方法,必须要实例化一个对象;

每一个对象都是独立的,通过对象改变属性只能改变自己内存空间的数据,互不影响;

通过"->"来访问类里面的属性和方法,类似于c中的指针,通过"="进行赋值;

$student1 = new Student1(); //创建内存空间,然后把地址传递给对象
$student1->name = "张三"; //通过"->"来访问类里面的属性和方法,类似于c中的指针,通过"="进行赋值
$student1->no = "1001";
$student1->score = "100";
$student1->showSelf();

  

三:引用外部类:

引用外部类:include,required;前者在错误时会出现一个警告,后者会出现一个致命的错误

在不确定外部类是不是用了一次的情况下,为了避免出现冲突,可以用include_once或者required_once

 

代码:我单独建了一个Student类,页面代码如下:

class Student
{
    public $name;
    public $age;
}

  然后我想在main页面用这个类,那么在main页面需要的代码如下:

include_once "Student.class.php";
$student = new Student();

  

四:构造函数和解析函数

构造函数:__construct()初始化参数,当实例化类的时候会调用这个函数,属于魔术方法,前面是两个下划线;

析构函数:__destruct(),当内存被回收的时候调用这个函数;

 

代码:

class Student
{
    public $name;
    public $age;
    /*************构造函数:__construct()初始化参数******************/
    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
    }
    public function show(){
        echo $this->name."今年".$this->age."岁了";
    }

    /************析构函数:******************/
    public function __destruct()
    {
        echo $this->name."内存被回收";
    }
}
$student = new Student("房明","18");
$student->show();  //此时打印的结果为:房明今年18岁了

  

 

以上是关于php学习八:封装的主要内容,如果未能解决你的问题,请参考以下文章

Docker:dockerfile构建php项目 [八]

java中封装,继承,多态,接口学习总结

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

56个PHP开发常用代码