博主信息
博文 60
粉丝 1
评论 1
访问量 76504
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php匿名类的创建与使用方法_2018年9月5日
PHP学习
原创
1189人浏览过

实例

<?php
/**
 * 匿名类的创建
 * 匿名类只支持PHP7.0以上
 * 匿名类也是利用new来直接调用
 */
//创建一个类
class BadPerson
{
    private $name = '西门大官人';
    public function story($name)
    {
        return $this->name.'喜欢上了<span style="color: red">'.$name.'</span><hr>';
    }
}
$BadPerson = new BadPerson();
echo $BadPerson->story('金莲妹妹');

//创建一个匿名对象
echo (new BadPerson())->story('莲花妹妹');

//创建一个匿名类
echo (new class
{
    private $name = '西门大官人';
    public function story($name)
    {
        return $this->name.'喜欢上了<span style="color: red">'.$name.'</span><hr>';
    }
})->story('水花妹妹');


//匿名类的三种应用场景
//1、在匿名类中可以使用构造方法
echo (new class ('欧阳克')//使用构造方法的时候,要传入参数,匿名类就在这里利用括号传入参数
{
    private $name = '';
    public function __construct($name)
    {
        $this->name = $name;
    }
    public function show($name)
    {
        return $this->name.'喜欢上了<span style="color: red">'.$name.'</span><hr>';
    }
})->show('小龙女');

//在匿名类中可以继承其它成员
//要在匿名类中继承成员,首先我们要创建一个类
class KungFu
{
    protected $kill = '';
    public function __construct($sta='')
    {
        $this->kill = $sta;
    }
    public function show()
    {
        return $this->kill ? $this->kill : '黯然销魂撑';
    }
}
//在上面中已经创建了一个类,下面我们利用匿名类来继承类

echo (new class('西门大官人','玉女剑法') extends KungFu
{
    private $name;
    public function __construct($name='',$sta='')//如果$name为空,就可以不传,如果就必须要传值。
    {
        parent::__construct($sta);
        $this->name = $name;
    }
    public function story($name)
    {
        return $this->name.'喜欢上了'.$name;
    }
    public function show()
    {
        return $this->name.'绝招是:'.parent::show();
    }
}
)->show();

//可以在声明的类中嵌套一个匿名类
class Anmal
{
    public $dog = '狗';
    protected $color = '白色';
    private $type = '哈士奇';
    protected function info()
    {
        return '售价2000元';
    }
    public function dome1()
    {
        return (new class ($this->type) extends Anmal {
            private $type;
            public function __construct($name)
            {
                $this->type = $name;
            }
            public function Demo2()
            {
                return '我是嵌套匿名类中的方法'.__METHOD__;
            }
            public function show()
            {
                return
                    '动物的名称是: ' .$this->dog. '<br>'.
                    '动物的颜色是: ' .$this->color. '<br>'.
                    '动物的是: ' .$this->type. '<br>';
            }
        }
        );
    }
}

//在匿名类中访问dome2
echo (new Anmal())->dome1()->Demo2();

echo (new Anmal())->dome1()->show();

运行实例 »

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

总结:在使用匿名类中,类中嵌套匿名类,这个不是很懂,以后还要加大学习一下。

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学