zoukankan      html  css  js  c++  java
  • php第五节课

    封装

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>

     

    <body>
    <?php
    Class Ren
    {
    private $name;
    private $sex;
    private $age;
    function __construct()
    {
    $this->sex = $s;
    }
    public function Say()
    {
    echo "hello";
    }
    function __destruct() //析构函数,对象销毁前执行
    {
    echo "该对象销毁了";
    }
    function SetAge($a) //给age赋值的函数
    {
    if($a>10 && $a<50)
    {
    $this->age = $a;
    }
    }
    function GetAge() //取age的值
    {
    return $this->age;
    }

     

    function __set($name,$value) //对类里面的私有成员进行赋值的魔术方法
    {
    if($name == "age" && $value>20 && $value<50)
    {
    $this->name = $value;
    }
    else
    {
    $this->$name = $value;
    }
    function __get() //对类里面的私有成员进行取值的魔术方法
    {

    return $this->$name;
    }

    }
    };
    $r = new Ren("男");
    $r->name = "张三";
    $r->age = 100;
    $r->Say();
    $r->SetAge(10);
    $r->Say();
    echo $r->sex;

     

    $r->__set("name","张三");
    $r->name = "李四"; //执行该语句会自动调用__set方法
    $r->sex = "女";
    //echo $r->GetAge();

     

    var_dump($r);

     

    //面向对象三大特性
    //封装
    //目的:让类更加安全,不让外界直接访问类里面的成员变量
    //做法:1.把成员变量做成私有的
    //2.做一个方法来实现取值或赋值,在方法里面加限制条件

     

    //使用类里面提供的魔术方法也可以实现对私有成员的操作
    //__set()特点:会自动执行,把赋值语句中的变量名作为第一参数,把变量值作为第二参数调用__set方法
    //__get()特点:会自动执行,把取值语句中的变量名作为参数调用__get方法

     

     

     

     

     


    ?>
    </body>
    </html>

     

  • 相关阅读:
    资产 = 负债 + 所有者权益
    并发编程四(3) 线程同步
    并发编程四(2) 线程同步
    并发编程四(1) 线程同步
    并发编程(三) 线程互斥
    并发编程(二)multiprocessing.dummy.Pool
    并发编程(一)

    mysql 存储过程演示造数据
    vue系列 箭头函数和this
  • 原文地址:https://www.cnblogs.com/xiongxiaobai/p/5435202.html
Copyright © 2011-2022 走看看