php伪协议文件包含—新闻曝光内幕重大消息!

PHP8的alpha版本将在未来几天内发布。当然,我认为最重要的是JIT。我自2013年以来一直致力于此工作。经过多次的挫折和失败,我终于得到了。已发表的。


但今天我们不谈JIT。PHP8发布后,我会单独写一个类似于《理解PHP8中的JIT》的系列。


呵呵,今天我想谈谈属性。昨天看到很多群转发一篇文章,叫《理解PHP8的特性》。老实说,这篇文章应该直接翻译成英文。很多学生读完后表示很困惑,不知道在说什么。


所以我想最好用一篇文章来简单解释一下这是什么。


在讲注解之前,我们先来说说之前的注解。我们在PHP项目中经常看到类似下面的参数


/参见参数Foo$argument/函数dummy$Foo


这些称为评论。在旧版PHP中,注释中的param和see没有任何意义。整个段落在函数/方法中保存为名为doc_comment的字符串。


为了解析这个注解的含义,我们需要设计一个特定的语法,比如Lili的+name,和param类似,然后直接解析这个字符串,提取出那个信息。


例如,要从See注释中获取信息,您必须执行类似的操作


$ref=新ReflectionFunction34;$doc=$ref-gt;getDocComment;$see=substr$doc,strpos$doc,34;


处理这些字符串相对麻烦且容易出错。


对于属性来说,它实际上将“Annotation”升级为“Annotation”,支持键入内容。


例如,上面的例子看起来像这样


lt;lt;Params34;34;gt;gt;lt;lt;参见34;gt;gt;


从PHP8Alpha2开始,您还可以使用


LT;LT;参数34;34;gt;gt;功能参考


不用担心这样写的影响。您现在可以通过反射获取这种格式的注释。例如,现在我们想要得到SeeAnnotation:


$ref=新ReflectionFunction34;var_dump$ref-gt;getAttributes34;[0]-gt;getName;var_dump$ref-gt;getAttributes34;[0]-gt;getArguments;


输出


字符串334;


当然,还有一些更高级的用途。也就是说,我们可以定义所谓的“注释类”:


lt;phplt;lt;phpAttributegt;类MyAttribute


然后,注意newInstance调用,您可以编写


lt;lt;MyAttribute34;34;gt;gt;函数dummy$argument$ref=newReflectionFunction34;[0]-gt;newInstance;


当您运行此代码时,将调用MyAttribute的__construct方法,并且传递给调用的参数是“See”和“


你明白了吗?您可以“实例化”注释,然后基于此功能创建您自己的“注释即组合”设计。


总而言之,以下是编写属性的方法


lt;lt;名称gt;gt;lt;lt;名称参数1、参数2、参数Ngt;gt;lt;lt;名称1参数、名称3参数gt;gt;


然后就可以使用PHP的Reflection系列方法根据getAttributes34来获取那些注解;还可以通过调用返回注解的getName方法来获取名称,并且可以使用getArguments方法获取括号内的Arguments。


更进一步,如果Name是直接用phpAttriubtes注解定义的类,也可以通过调用newInstance方法来实现类似34的调用。


很多人这样这有什么好处呢?


说实话,我一直对新功能不感兴趣,但这个属性应该还是有的。


然而,一些PHPers可能会说使用Go不是一个好主意。如果你想成为一名优秀的开发者,你需要专注于解决题并利用现有的技术资源来实现业务,而不是利用公司的资源来实现技术成就!如果您无法使用一种语言的本机功能编写良好的代码来解决您的题,那么切换到另一种语言也无济于事。技术人才培养始终呈“T”字形。如果我学不了PHP就是为了吃饭,那我改学Java、GO语言能成为高手吗?


PHP的终极学习不仅限于使用PHP,还必然包括性能优化、算法、Swoole、微服务、分布式并发、Linux、Kafka、MQ等等。先掌握一个题目,就是全面、全面。从表面上打好基础。为了帮助大家成功成为一名架构师,我们专门准备了一套高质量的PHP架构师教程,帮助你月薪突破30K。


领取方式点赞关注小编并私信【资讯】即可领取如何领取资讯!


显示部分信息


领取方式点赞关注小编并私信【资讯】即可领取如何领取资讯!


关于php伪协议文件包含和php 文件包含 注释的详细内容已解完毕,记得持续关注本站。

除非特别注明,本站所有文字均为原创文章,作者:admin

No Comment

留言

电子邮件地址不会被公开。 必填项已用*标注

感谢你的留言。。。