首页 » Web前端 » php匿名技巧_PHP匿名类的用法

php匿名技巧_PHP匿名类的用法

访客 2024-10-24 0

扫一扫用手机浏览

文章目录 [+]

//直接定义$objA=newclass{publicfunctiongetName(){echo"I'mobjA";}};$objA->getName();//方法中返回functiontestA(){returnnewclass{publicfunctiongetName(){echo"I'mtestA'sobj";}};}$objB=testA();$objB->getName();//作为参数functiontestB($testBobj){echo$testBobj->getName();}testB(newclass{publicfunctiongetName(){echo"I'mtestB'sobj";}});

一次性给出了三种匿名类的利用方法。
匿名类可以直接定义给变量,可以在方法中利用return返回,也可以当做参数通报给方法内部。
实在,匿名类就像一个没有事先定义的类,而在定义的时候直接就进行了实例化。

//继续、接口、访问掌握等classA{public$propA='A';publicfunctiongetProp(){echo$this->propA;}}traitB{publicfunctiongetName(){echo'traitB';}}interfaceC{publicfunctionshow();}$p4='b4';$objC=newclass($p4)extendsAimplementsC{useB;private$prop1='b1';protected$prop2='b2';public$prop3='b3';publicfunction__construct($prop4){echo$prop4;}publicfunctiongetProp(){parent::getProp();echo$this->prop1,'===',$this->prop2,'===',$this->prop3,'===',$this->propA;$this->getName();$this->show();}publicfunctionshow(){echo'show';}};$objC->getProp();

匿名类和普通类一样,可以继续其他类,可以实现接口,当然也包括各种访问掌握的能力。
也便是说,匿名类在利用方面和普通类并没有什么不同。
但如果用get_class()获取类名将是系统自动天生的类名。
相同的匿名类返回的名称当然也是相同的。

php匿名技巧_PHP匿名类的用法

//匿名类的名称是通过引擎授予的var_dump(get_class($objC));//声明的同一个匿名类,所创建的工具都是这个类的实例var_dump(get_class(testA())==get_class(testA()));

那么匿名类中的静态成员呢?当然也和普通类一样,静态成员是属于类而不是实例的。

php匿名技巧_PHP匿名类的用法
(图片来自网络侵删)

//静态变量functiontestD(){returnnewclass{publicstatic$name;};}$objD1=testD();$objD1::$name='objD1';$objD2=testD();$objD2::$name='objD2';echo$objD1::$name;

当类中的静态变量修正时,所有类实例的这个静态变量都会随着变革。
这也是普通类静态成员的特性。

测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/201912/source/PHP%E5%8C%BF%E5%90%8D%E7%B1%BB%E7%9A%84%E7%94%A8%E6%B3%95.php

参考文档: https://www.php.net/manual/zh/language.oop5.anonymous.php

标签:

相关文章

网站SEO优化关键词布局的艺术与步骤

网站SEO优化已成为企业获取流量、提升品牌知名度的重要手段。关键词布局作为SEO优化的核心环节,其重要性不言而喻。本文将深入探讨关...

Web前端 2025-04-09 阅读1 评论0

网站编辑与SEO协同发展的密不可分关系

网站编辑和SEO(搜索引擎优化)这两个职业逐渐成为互联网行业的热门话题。许多人认为,网站编辑和SEO是两个独立的领域,但实际上,它...

Web前端 2025-04-09 阅读1 评论0