zoukankan      html  css  js  c++  java
  • php 封装

    复习一下之前说的php的其他知识


    由众多对象抽象出来的
    对象
    由类实例化出来的   (所有的东西都可以把它看做成对象)
    (类是不能直接用的,关键字new,可以造一个新对象来提取类中的功能)


    成员变量
    成员方法(成员函数)
    成员属性

    访问修饰符(成员的前面可以加,来决定成员的权限)
    public 公有的
    protected 受保护的(只能在该类或该类子类可以访问)
    private 私有的(只能在该类,花括号内可以访问)

    构造函数(对类里面某个成员可以进行初始化)
    1.写法特殊 
    2.执行时间特殊

    面向对象的三大特性:

    1、封装

    2、继承

    3、多态

    封装:

    目的:为了使一个类更加安全

    做法:1、将成员变量变为私有的

             2、在类里面做方法来间接访问成员变量

             3、在方法里面加控制

    例:

    <!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
    {
        public $code; //人员代号
        private $name; //人员名称
        private $sex; //人员性别
        private $age; //人员年龄,必须在18-50周岁之间
        
        //构造方法,用来初始化性别
        function __construct($s)
        {
            $this->sex = $s;
        }
        
        /*//造一个修改年龄的方法
        function SetAge($a)
        {
            //加控制
            if($a>18 && $a<50)
            {
                $this->age = $a;
            }
        }
        //造一个获取age值的方法
        function GetAge()
        {
            return $this->age;
        }*/
        
        //给变量赋值的魔术方法
        function __set($n,$v)
        {
            if($n=="age")
            {
                if($v>18 && $v<50)
                {
                    $this->$n = $v;
                }
            }
            else
            {
                $this->$n = $v;
            }
        }
        
        //__get魔术方法,用来取变量值的
        function __get($n)
        {
            return $this->$n;
        }
    }
    
    //造对象
    $r = new Ren("男");
    //$r->SetAge(30);
    //$r->__set("age",30);
    
    $r->age = 30; //自动调用__set()方法,将变量名当做第一个参数,将等号右边的值当做第二个参数
    $r->name = "张三";
    
    //echo $r->sex; //自动调用__get()方法,将变量名当做参数
    //var_dump($r);
    
    class Dog
    {
        private $name;
        
        function Jiao()
        {
            echo $this->name."在叫";
        }
        
        function SetName($n)
        {
            $this->name = $n;
            return $this;
        }
        
    }
    
    $d = new Dog();
    $d->SetName("旺财")->Jiao();
    
    
    
    ?>
    
    
    
    </body>
    </html>
  • 相关阅读:
    django orm
    CentOS7.4 安装mongodb
    Django之logging日志
    Python virtualenv虚拟环境
    不能通过IP访问Docker容器里的Django服务器
    docker学习7-Dockerfile制作自己的镜像文件
    docker学习6-docker-compose容器集群编排
    docker学习5-docker安装tomcat环境和部署war包
    docker学习4-docker安装mysql环境
    深度学习和神经网络的区别
  • 原文地址:https://www.cnblogs.com/qishuang/p/6170453.html
Copyright © 2011-2022 走看看