当前位置: 首页 > news >正文

小游戏网页版链接关键词排名优化提升培训

小游戏网页版链接,关键词排名优化提升培训,做自媒体视频搬运网站,免费做名片的网站前言 学过java的同学应该都知道注解的作用&#xff0c;但是在php中注解有什么用呢&#xff1f;我的理解就是美化代码和便于维护一些类的设计。 说明 我们先设计一个类&#xff0c;声明人类的性别 <?php class Sex {//男人const MAN 1;//女人const WIFE 2;//未知const…

前言

学过java的同学应该都知道注解的作用,但是在php中注解有什么用呢?我的理解就是美化代码和便于维护一些类的设计。

说明

我们先设计一个类,声明人类的性别

<?php
class Sex
{//男人const MAN = 1;//女人const WIFE = 2;//未知const UNKNOWN = 0;
}

由上可知,我们分别设计了3个类型,0=>未知,1=>男人,2=>女人

现在,应业务需求,我给前端展示的内容不能显示数字(0,1,2),要展示汉字(未知,男人,女人),数据映射在后端完成。 结合php8引入了枚举的支持。那么我们重新设计如下

<?phpenum Sex : int
{//男人case MAN = 1;//女人case WIFE = 2;//未知case UNKNOWN = 0;public function getDescription() : string{return match($this){self::MAN	=>	'男人',self::WIFE  =>  '女人',self::UNKNOWN => '未知'};}
}
echo Sex::MAN->getDescription(); //获得中文映射

由上可知,是不是看着就简单了许多。
但是,还有更直观的显示,设计会稍微复杂一点,我们接着慢慢向下看。

我们先设计一个trait,此trait完成注解的反射。

<?php
trait EnumFeature
{/*** 获取case 注解内容* @param string $class 注解类* @return null | Object*/protected function getTargetCaseReflectionAnnotation(string $class) : mixed{$reflection = new \ReflectionEnumBackedCase(self::class,$this->name);$attributes = $reflection->getAttributes();if(empty($attributes)){return null;}foreach($attributes as $attribute){if($attribute->getName() === $class){return $attribute->newInstance();}}return null;}
}

在设计一个注解类,让这个注解类可以注解 enum - case

<?php
#[\Attribute(\Attribute::TARGET_CLASS_CONSTANT)]
class CaseDescription
{public function __construct(public string $description){}
}

重构 enum 设计如下


enum Sex : int
{use EnumFeature#[CaseDescription('男人')]case MAN = 1;#[CaseDescription('女人')]case WIFE = 2;#[CaseDescription('未知')]case UNKNOWN = 0;public function getDescription() : ?string{//获取注解示例,并从中获取 description 属性return $this->getTargetCaseReflectionAnnotation(CaseDescription::class)?->description;}
}

这样看着是否直观了很多?对比之前的方案,也便于维护。
完整版,应业务需求,不同的性别在页面上呈现的性别颜色也不同。
再设计一个Color注解

<?php#[\Attribute(\Attribute::TARGET_ALL)]
class Color
{public function __construct(public ?string $value = null){}
}

对性别进行color注解添加


enum Sex : int
{use EnumFeature#[CaseDescription('男人'),Color("#000000")]case MAN = 1;#[CaseDescription('女人'),Color("#FFF000")]case WIFE = 2;#[CaseDescription('未知'),Color("#CCCCCC")]case UNKNOWN = 0;//获取中文名称public function getDescription() : ?string{//获取注解示例,并从中获取 description 属性return $this->getTargetCaseReflectionAnnotation(CaseDescription::class)?->description;}//获取颜色public function getColort() : ?string{return $this->getTargetCaseReflectionAnnotation(Color::class)?->value;}
}

以上就是我对注解的实际应用。当然再hyperf 框架中,注解实际上被赋予了更多的含义(如自动注入等高级功能,类似java的spring容器了)

总结

以前总觉得php 语言开发大型项目并不是很适合,但现在php8出来后,个人觉得php8越来越适合开发大型项目,祝php越来越好,能够再众多的开发语言中再次脱颖而出。php是世界上最好的语言~

http://www.mmbaike.com/news/108869.html

相关文章:

  • 天天联盟没网站怎么做标题seo是什么意思
  • 自己的公司怎么做网站淘宝seo对什么内容优化
  • 网站做等保三级建设网络营销专业是干什么的
  • wordpress安装权限管理刷移动关键词优化
  • 网站建设推广平台免费开源网站
  • 合肥房产信息网关键词优化排名首页
  • 网站建设步骤详解全国疫情今天最新消息
  • 如何做医药类网站爱站工具包的主要功能
  • 做批发的有哪些网站江西优化中心
  • 软件开发包括网站开发吗优化推广方案
  • 济南 制作网站 公司吗百度关键词优化曝光行者seo
  • 网站的功能和作用是什么南宁做网站公司
  • 网站快照长期不更新网站如何推广营销
  • 用jquery打造个性网站关键词排名技巧
  • pc网站平台sem是什么职位
  • 网络短剧免费观看广东seo快速排名
  • 做网站的服务器cpu异常2024很有可能再次封城吗
  • seo网站制作seo是什么意思电商
  • 开网店 建网站要钱吗文件外链
  • 自己做的网站如何赚钱吗江苏seo排名
  • discuz插件seo关键词优化策略
  • 网站wap转换找平台推广
  • 网站优化找谁武汉大学人民医院精神卫生中心
  • 廊坊网站建设制作长春网络推广公司哪个好
  • 浙江住房和城乡建设网北京关键词seo
  • 中国中国建设银行网站首页百度官方免费下载
  • dede做网站百度app下载最新版本
  • 营销型网站建设技术指标营销管理制度范本
  • 佛山外贸网站制作外贸网站优化公司
  • 中国服装设计网站网络优化工程师有前途吗