登录  /  注册
博主信息
博文 33
粉丝 0
评论 2
访问量 36539
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
类声明,类属性重载,类的继承,以及类的中常量属性与静态成员的访问2018/9/04
cxw的博客
原创
728人浏览过

通过今天的学习,我学会了类的创建和实例,类常量和静态属性的创建和调用,以及类的继承与方法的重写,具体代码如下

1,类声明与类的实例化

实例

<?php
/**
 * 类的声明与实例化
 * 1. 类声明: class;
 * 2. 类的实例化: new
 * 3. 对象成员的访问:->
 */

//用关键字class声明一个类
class Demo1
{

}
//用关键字 new 实例化一个类
$demo1 = new Demo1();

//给当前对象添加一些属性和方法
$demo1->name = '朱老师';
$demo1->sex = '男';
$demo1->hello = function(){
    return '我是一个自定义的类方法';
};
//使用对象访问符:-> 来访问对象中的成员(属性和方法)
echo $demo1->name,': ',$demo1->sex,'<br>';

//错误的调用方式,因为当前对象方法不是一个普通函数,而是一个对象方法
//echo $demo1->hello();
//正确的调用方式,对象方法应该以回调的方式运行
echo call_user_func($demo1->hello);

运行实例 »

点击 "运行实例" 按钮查看在线实例

2,类的继承与方法重写

实例

<meta charset="UTF-8">
<?php

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/9/4
 * Time: 11:52
 */

//父类
class test
{
    //属性常量
    const PAGE_NAME='WELCOME TO HANGZHOU';
    private  $name;
    private  $age;

    public  function  __construct($name,$age)
    {
        $this->name=$name;
        $this->age=$age;
    }
    public function __get($name)
    {
     return $this->name;
    }
    public  function  __set($name, $value)
    {
        // TODO: Implement __set() method.

        return $this->$name=$value;
    }
    public function  showResult()
    {
        return '我爱你,中国!';
    }

}
class  show extends  test{

    private  $sex;
//    子类构造函数
function  __construct($name, $age,$sex='男')
{
    //父类的构造方法
    parent::__construct($name, $age);
    $this->sex=$sex;
}
}
echo  '父类类调用';
$result=new test('小红',12);
//方法重载设置值
$result->name='小军';
echo  $result->name;
echo  '<hr>';

echo  '子类调用';

$show=new show('小米','55');

echo   '姓名:',$show->name='小红'.'<br>';
echo  '性别:',$show->sex='女';

echo '<br>'. '子类调用父类方法','<br>';
//子类调用父类方法

 echo $show->showResult();

运行实例 »

点击 "运行实例" 按钮查看在线实例

3,类常量与类属性的重载

实例

<meta charset="UTF-8">
<?php

class lianxi1{

    //定义一个常量变量
    const  TITTLE_NAME='WELCOME TO MY HOME!';
    //定义三个变量,分别访问范围府为public private ,protected
    public  $name;
    private  $age;
    protected  $sex;

    //构造函数,类加载的时候进行初始化变量和方法
    public  function  __construct($name,$age,$sex='男')
    {
        $this->name=$name;
        $this->age=$age;
       $this->sex=$sex;
        $this->show();
    }
    function  show()
    {
        return  '姓名:'.$this->name.'年龄:'.$this->age.'性别:'.$this->sex;
    }
    //获取属性重载方法
    public function  __get($name)
    {
        return $this->$name;
    }
    //设置属性重载方法
    public  function  __set($name, $value)
    {
        // TODO: Implement __set() method.
        return $this->$name=$value;
    }
    // 检测属性重载方法
    public  function  __isset($name)
    {
        return isset($name)?$name:'没有访问权限';
    }
    //删除属性重载方法
    public  function  __unset($name)
    {
        if ($name='name')
        {
            unset($this->$name);
        }
        else
        {
            return false;
        }
    }

}

//调用常量方法
echo '输出常量变量:',lianxi1::TITTLE_NAME;
echo  '<hr>';
//实例化对象,设置默认的值
$result=new lianxi1('小明','20');
//var_dump($result);

//访问属性,因为属性全部被封装,所以必须通过一个统一的外部接口访问
echo  $result->show();

echo  '<hr>';
//通过创建获取属性的重载方法,从而获取变量的值
echo  '通过创建获取属性重载读取私有变量:年龄',$result->age;
echo  '<hr>';
echo  '通过创建获取属性重载读取私有变量:性别',$result->sex;
echo  '<hr>';
//通过设置属性的重载方法,从而改变变量的值
echo  '通过设置属性重载方法改变私有变量:年龄',$result->age=33;
echo  '<hr>';
//通过设置属性的重载方法,从而改变变量的值
echo  '通过设置属性重载方法改变私有变量:年龄',$result->sex='女';
echo  '<hr>';
echo  '改变年龄和性别值后:',$result->show();
echo  '<hr>';

echo  '检测变量是否存在:';
echo isset($result->name) ? '存在<br>' : '<span style="color:red">不存在</span><br>';
echo  '<hr>';

echo  '删除变量后显示:';

 unset($result->name);
unset($result->age);
unset($result->sex);
echo  '改变年龄和性别值后:',$result->show();
运行实例 »

点击 "运行实例" 按钮查看在线实例

4,类中静态成员的声明与访问

实例

<meta charset="UTF-8">
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/9/4
 * Time: 12:18
 */
class  test1
{
    //定义静态成员变量
    private static  $name;
    private  static $age;
    private  static  $sex;
    public static function  show()
    {
        echo '我叫:',self::$name,'今年:',self::$age,'岁,性别是',self::$sex;
    }
    public  function  __get($name)
    {
        // TODO: Implement __get() method.
        return $name;
    }
   function  __construct($name,$age,$sex)
    {
         self::$name=$name;
         self::$age=$age;
         self::$sex=$sex;
    }
}
$a=new test1('小米','25','男');
echo test1::show();
运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

继承 extents

定义常量const

静态属性 static

调用静态属性self

调用静态类::


批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学