十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要讲解了“PHP7中匿名类如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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;
感谢各位的阅读,以上就是“PHP7中匿名类如何使用”的内容了,经过本文的学习后,相信大家对PHP7中匿名类如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!