• PHP语言 -- 面向对象


    1.定义类

    class Ren
    {
    public $name; //定义成员变量
    var $sex;
    
    
    function Say()  //定义方法
    {
    echo "这个人在讲话";
    }
    }

    2.实例化

    $ren = new Ren();  //实例化
    
    $ren->name="张三"; //调用成员 变量
    $ren->sex="女";
    
    $ren->Say();//调用方法

    3.this引用

    class Ren
    {
    public $name;
    public $sex;
    
    public function Say()
    {
    echo $this->name."这个人在说话";  //this 代表对象 不是类
    }
    }
    
    $ren= new Ren();
    
    $ren->name="张三";
    
    $ren->Say();

    4.构造函数

    class Ren
    { 
    public $name;
    public $sex;
       
    function __construct($name,$sex)  //构造函数
    {
    $this->name=$name;
    $this->sex = $sex;
    }
    
    }
    
    $ren = new Ren("李四","男");

    5.析构函数

    function __destruct()  //销毁对象 施放内存,关闭连接等  自动执行
    {
    echo "该对象马上要销毁了";
    }

     6.封装

    class Ren
    {
    private $name; //将成员变量 私有
    private $sex;
    private $age;
    
    //封装:访问成员变量的方法
        public function SetAge($age)
        {
            if($age > 18 && $age <80)
            {
            $this->age = $age;
            }
        } 
    
    //封装:简便方法赋值 ,自动调用
       public function __set($name,$value)
        {
        if($name=="age")
        {
            if($value>18 && $value <80)
            {
            $this->$name = $value;
            }
        }
        else
        {
        $this->$name = $value;
        }
        }  
    //封装:简便方法获取值
        public function __get($name)
        {
        return $this->name;
        } 
        
    }
    
    $ren = new Ren("李四","男")
    
    $ren->name = "什么";    
    
    echo $ren->sex;    

    7.继承

    class Student extends Ren
    {
    //父类方法重写
    function Say()
    {
     parent::Say();  //调用父类方法 
     echo "这是子类的方法";
    }
    }

    8.关键字

    final  用来修饰类 ,如果把一个类定义成final类,该类就无法被继承了

    final class Ren
    {
    }

    static 静态的

    class Student
    {
    static public $class;//定义静态变量
    static function Say() //定义静态方法
    {
    echo "aaaa";
    }
    }
    
    Student::$class = "hello";//调用静态变量
    
    echo Student::$class
    
    Student::$class;//调用静态方法

    const 在类里定义常量

    const ss=3.14; //定义常量

    echo Studen::ss

     9.多态

    1).必须要发生在继承下

    2).子类对父类的方法进行重写

    3).在PHP中多态表现的不明显

    10.tostring()方法,系统自带,用处不是很大,在输出对象时,返回对象的信息

    function __tostring()

    {

      return "这是个类";

    }

    10.克隆对象  关键字:clone

    $ren = new Ren();
    
    $r1 = clone $ren;
    function __clone()
    {
      $this->age=18; //$this 找的是副本
    }

     11.加载类

    include("文件路径"); 
    
    require_once("文件路径");
    
    include "文件路径";
    
    require_once "文件路径";
  • 相关阅读:
    2016/1/18
    正则知识点总结
    爬虫反反爬虫:转
    健身与饮食随想--年轻的每一天,都是弥足珍贵的!!!
    python time模块
    c语言求两个数的最大公因数(穷举法,欧几里得算法,递归)
    c语言递归解决汉诺塔问题
    python用函数打印素数(代码未优化)
    羊车门问题提交
    Delphi Tokyo 10.2.3
  • 原文地址:https://www.cnblogs.com/yifangtongxing/p/5353281.html
Copyright © 2020-2023  润新知