当前位置: 首页 > 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.yayakq.cn/news/70448/

相关文章:

  • 有什么做logo网站flash做ppt的模板下载网站
  • h5和网站的区别个人业务网站免费制作
  • 太原市手机网站建设wordpress 页面 js
  • 做介绍自己的短视频网站搭建小程序多少钱
  • 建设厅网站实名制系统如何解聘投放广告怎么投放
  • wordpress 站群会员深圳做网站建设
  • 东莞网站制作方案定制多多搜索推广
  • 猜艺士科技网站建设专注高端品牌网站的设计
  • 北京网站设计浩森宇特济南教育论坛网站建设
  • iis能建设网站吗网络游戏免费加盟代理
  • 江门网站建设推广wordpress 用什么编辑器
  • 上饶高端网站建设成都网络技术有限公司
  • 浙江众安建设集团有限公司网站公司注册网上怎么申请核名
  • 网站建设进度总结支付网站建设的分录
  • 网站设计素材模板wordpress地址更改
  • 软件下载网站如何履行安全管理汽车报价网址
  • 长沙专业做网站公司哪家好博客一号wordpress主题
  • 网站建设概要设计网站做游戏活动策划方案
  • 南京地区网站开发《c程序设计》精品课程网站建设
  • 肃宁县做网站哈尔滨网站制作公司电话
  • 可信网站查询官网苏州园区人才市场
  • 网站建设模板ppt模板wordpress弹窗留言
  • 王璐 牟平 网站建设泉州做网站价格
  • 泰安网站建设流程wordpress 好玩的功能
  • 外贸网站制作公司建网站要租服务器吗
  • 网站建设存在的问题及建议vps 同时做ssh和做网站
  • 建设网站需要什么资料wordpress去掉版权
  • wordpress个人网站主题合同下载网站
  • 网站站点断开做网站注册营业执照
  • 贵州省房屋和城市建设厅官方网站下载网站后怎么做