zoukankan      html  css  js  c++  java
  • 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岁了
    

      

  • 相关阅读:
    行盒(line box)垂直方向的属性详解:从font-size、line-height到vertical-align
    CSS绝对定位的原点:是在border上、padding上还是在content上?
    从知乎首页用户操作入口学习到的CSS技巧
    重置表单中的文件上传控件(file input)的方法
    ASCII, Unicode, UTF-8, 8进制, 16进制等各种编码学习理解笔记
    Yarn的Linking dependencies特别慢的优化方法
    MongoDB学习记录(四)
    MongoDB学习记录(三)
    MongoDB学习记录(二)
    AdBlock——拦截网页广告
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/6647200.html
Copyright © 2011-2022 走看看