博主信息
博文 35
粉丝 0
评论 0
访问量 27824
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php基础知识(类中属性和方法练习)--2018年9月6日14:01:15
Hi的博客
原创
1016人浏览过

在php中类的使用很频繁,下面我来介绍下类中的基本的属性和方法使用.

以下是我的代码.

实例

<?php
echo "<h2>类的申明与实例化</h2>";
class test1 {
    public function hello(){
        return "我是一个类";
    }
}
$test= new test1();
echo $test->hello(),"<br>";
$test->hello1 = function (){
    return "我是另外一个类";
};
echo call_user_func($test->hello1);
echo "<hr>";
echo "<h2>类常量与类的属性重载</h2>";

class test2{
    //使用const的关键字来创建类常量,使用大写来定义常量的名称
    const TEST = "我是一个测试2";
   //创建三个私有属性
    private $name;
    private $age;
    private $salary;
    public  function __construct($name,$age,$salary)//使用构造方法对三个私有属性进行初始化
    {
         $this->name = $name;
         $this->age = $age;
         $this->salary = $salary;
    }
    //设置获取器使得属性重载可以访问私有的条件,还可以设置条件进行访问的限制
    public function __get($name)
    {
        if ($name == 'salary'){
            exit( "你无权查看");
        }else{
            return $this->$name;
        }
    }
    //设置设置器使得属性修改访问私有条件的属性,
    public function __set($name, $value)
    {
        if ($name == 'salary'){
            exit( "你无权修改");
        }else{
            return $this->$name = $value;
        }
    }
    //设定属性查询规则
    public function __isset($name)
    {
        if ($name == 'salary'){
            return false;
        }
            return isset($this->$name);

    }
    //设定属性销毁方法
    public function __unset($name)
    {
        if ($name == 'salary' || $name == "name"){
            return false;
        }
            unset($this->$name);

    }
}
//使用类的名称加双冒号访问类中的常量
echo test2::TEST,"<br>";
$test2 = new test2('test','25','6000');
echo $test2->name,"<br>";
echo $test2->age,"<br>";
//$test2->salary = 5000;
$test2->name = "小王";
echo $test2->name,"<br>";
echo isset($test2->salary) ? "有<br>" : "没有<br>";
echo isset($test2->name) ? "有<br>" : "没有<br>";
unset($test2->name);
echo $test2->name,"<br>";
unset($test2->age);
echo $test2->age,"<br>";
echo "<hr>";
echo "<h2>类的继承与方法的重写</h2>";
//创建一个父类
class test3 {
    public $name;
    protected $age;
    const TEST_1 = "我是父类的常量";
    public function __construct($name,$age)
    {
        $this->name =$name;
        $this->age =$age;

    }
}
//创建一个子类继承父类属性和方法
class test3_1 extends test3
{
    private $salary;
    public function __construct($name, $age,$salary)
    {
        parent::__construct($name, $age);//引用父类的构造方法进行重写
        $this->salary = $salary;
    }
    public function __get($name)
    {
      return $this->$name;
    }
    public function __isset($name)
    {
       if ($name == "salary"){
           return false;
       }
       return isset($this->$name);
    }
}

$test3_1 = new test3_1("小明",20,5000);
echo test3_1::TEST_1;
echo $test3_1->name,"<br>";
echo $test3_1->age,"<br>";
echo $test3_1->salary,"<br>";
echo isset($test3_1->salary) ? "有<br>":"没有<br>";
echo isset($test3_1->name) ? "有<br>":"没有<br>";
echo "<hr>";
echo "<h2>类中静态成员的声明和访问</h2>";
class test4{
    //静态类的关键字是static,在3p后面紧跟着.
    public static $name = "小红";
    public static $age="28";
    public static $salary="6000";


}
echo test4::$name,"<br>";
echo test4::$age,"<br>";
echo test4::$salary,"<br>";

运行实例 »

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


批改状态:合格

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

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

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