阅读(3713) (0)

hack属性:语法

2017-12-01 11:40:58 更新

hack属性可以放在任何可反映的代码片段上。这些包括:

  • 功能
  • 方法
  • 接口
  • 性状

属性被封闭在<<和>>。多个属性可以放在同一组括号内。每个属性都有一个键和一组可选的逗号分隔值。

官方语法

<<key[(value 1,...,value N)][..., key[(value 1,...,value N)]]>>

语法的例子

<<NoValuesAttribute>>
function foo() {}
<<OneValueAttribute('Hello')>>
class A {}
<<FirstAttribute('Good', 'Afternoon'), SecondAttribute, ThirdAttribute('2')>>
trait B {}

特殊属性

属性开始__的特殊属性由typechecker和HHVM保留。自定义属性不能以__。

属性访问

你可以使用getAttribute()on ReflectionClassReflectionFunction等等来访问一个属性。只需将该键传递给该属性getAttribute()即可接收其值的数组。