Blogger Information
Blog 33
fans 0
comment 2
visits 37292
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类声明,类属性重载,类的继承,以及类的中常量属性与静态成员的访问2018/9/04
cxw的博客
Original
746 people have browsed it

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

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

调用静态类::


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post