php7 匿名继承类_PHP7中的匿名类使用方法
在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。我们先来看看匿名类的简单使用。// 直接定义
$objA = new class
{
public function getName()
{
echo "I'm objA";
}
};
$objA->getName();
// 方法中返回
function testA()
{
return new class
{
public function getName()
{
echo "I'm testA's obj";
}
};
}
$objB = testA();
$objB->getName();
// 作为参数
function testB($testBobj)
{
echo $testBobj->getName();
}
testB(new class{
public function getName()
{
echo "I'm testB's obj";
}
});
一次性给出了三种匿名类的使用方法。匿名类可以直接定义给变量,可以在方法中使用return返回,也可以当做参数传递给方法内部。其实,匿名类就像一个没有事先定义的类,而在定义的时候直接就进行了实例化。// 继承、接口、访问控制等
class A
{
public $propA = 'A';
public function getProp()
{
echo $this->propA;
}
}
trait B
{
public function getName()
{
echo 'trait B';
}
}
interface C
{
public function show();
}
$p4 = 'b4';
$objC = new class($p4) extends A implements C
{
use B;
private $prop1 = 'b1';
protected $prop2 = 'b2';
public $prop3 = 'b3';
public function __construct($prop4)
{
echo $prop4;
}
public function getProp()
{
parent::getProp();
echo $this->prop1, '===', $this->prop2, '===', $this->prop3, '===', $this->propA;
$this->getName();
$this->show();
}
public function show()
{
echo 'show';
}
};
$objC->getProp();
匿名类和普通类一样,可以继承其他类,可以实现接口,当然也包括各种访问控制的能力。也就是说,匿名类在使用方面和普通类并没有什么不同。但如果用get_class()获取类名将是系统自动生成的类名。相同的匿名类返回的名称当然也是相同的。// 匿名类的名称是通过引擎赋予的
var_dump(get_class($objC));
// 声明的同一个匿名类,所创建的对象都是这个类的实例
var_dump(get_class(testA()) == get_class(testA()));
那么匿名类中的静态成员呢?当然也和普通类一样,静态成员是属于类而不是实例的。
// 静态变量
function testD()
{
return new class{
public static $name;
};
}
$objD1 = testD();
$objD1::$name = 'objD1';
$objD2 = testD();
$objD2::$name = 'objD2';
echo $objD1::$name;
当类中的静态变量修改时,所有类实例的这个静态变量都会跟着变化。这也是普通类静态成员的特性。
php7 匿名继承类_PHP7中的匿名类使用方法相关推荐
- php7 匿名继承类_PHP7中的匿名类使用方法_后端开发
PHP 微服务集群搭建 - Hyperf_后端开发 Hyperf 是基于 Swoole 4.4+ 实现的高性能.高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-F ...
- android 遍历实体类,Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
- java的匿名函数_JAVA语言中的匿名函数详解
本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...
- java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...
Java中所有的类都是通过直接或间接地继承( )类得到的 答:java.lang.Object 关于主机地址 192.168.19.125 (子网掩码: 255.255.255.248 ),以下说法正 ...
- php 序列化匿名函数,在php中序列化匿名函数
有没有办法在 PHP中序列化匿名函数? protected function _fetchCode() { // Open file and seek to the first line of the ...
- matlab匿名函数求导,MATLAB中的匿名函数和Python中的匿名函数
在MATLAB和Python中都有一个叫做匿名函数的东西,在这里对比一下. 一. MATLAB中这样来定义一个匿名函数: f = @(x1, x2, ...) exper @后面的括号里面是自变量,然 ...
- python中的元类_python中的元类
类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- java client类_Jmeter中自定义JavaSamplerClient类的编写
自定义的JavaSamplerClient类需要满足以下几个条件: 1.需要把Jmter的ext目录下的ApacheJmeter_core.jar和ApacheJmetere_java.jar 引入到 ...
- python class类_python中的class(类)
编码注释: 在源文件的第一行或第二行写入如下内容: # -*- coding:gbk -*- # 设置源文件编码格式为:gbk 或 # -*- coding:utf-8 -*- # 设置源文件编码格式 ...
最新文章
- 春天闻香食花——品尝一顿愉悦的花餐
- 56 安装RabbitMQ或Redis
- subpage新写法
- 跟随器反馈回路电阻_如何将短反馈回路设置为单独编码器
- 聚类分析在用户行为中的实例_用户关注行为数据分析过程详解-描述统计+聚类...
- 数据助力防疫,疫情密切接触人员追踪算法赛期待你的加入
- Win10安装pdf虚拟打印机的方法
- 【渝粤题库】陕西师范大学800010 经济地理学
- RS485串口通信实验
- 期刊论文发表的格式详细介绍
- 跨站脚本攻击基础 ——合天网安实验室学习笔记
- 基于微信小程序的培训机构管理系统毕业设计源码
- TS判断6种数据类型
- Android 最全面试题汇总(问题+答案+详解链接)
- 计算机二级各个科目的区别,计算机二级考试的各个科目的内容及区别
- 【微信小程序】全局变量的定义与使用
- Python学习0——基础知识1
- P vs. NP:从一则数学家谋杀案说起
- 表示条件:10 x 100或x 0的c语言表达式是,西安培华学院c语言期未考试A.doc
- 转200条装修小常识
热门文章
- 文献管理三剑客之endnote broken attachments
- 文献管理三剑客之noteexpress打不开 cannot find import; dll may be missing corrupt or worng
- Atitit 嵌入式系统与pc系统的对比 目录 1. 哈佛结构和冯诺依曼结构 普林斯顿结构区	1 2. 中断程序 类库调用	1 3. 指令集 三大流程语句 与 运算语句 赋值语句	1 4. 异
- Atitit 演讲常用肢体语言与手势总结 目录 1. 原则 ,哑语一样,手势不只是补充。。。	1 2. 比拟实际物体与抽象物体	1 2.1. 三个实用的手势:	1 2.2. (五)、演讲中忌讳的动作
- Atitit 防止迟到与防止打卡打不上解决方案 attilax总结
- Atitit 财政学概论 attilax学习笔记
- Atitit.会员卡(包括银行卡)api的设计
- paip.python优缺点attilax总结
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
- paip.重装系统需要备份的资料总结..