PHP7中匿名类的使用方法
前言
在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。下面本篇文章就来简单带大家了解一下PHP7 匿名类的用法,希望对大家有所帮助!
匿名类就像一个没有事先定义的类,而在定义的时候直接就进行了实例化。
// 直接定义
$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";
}
});
// 继承、接口、访问控制等
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();
// 匿名类的名称是通过引擎赋予的
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;
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfbijh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24