PHP 8 中的屬性


屬性是一種類,可以用來向其他類、函式、類方法、類屬性、常量和引數新增元資料。屬性在執行時沒有任何作用。

屬性不會影響程式碼,但可用於反射API。PHP 8 中的屬性允許其他程式碼檢查類屬性和方法。

  • 我們可以為一個宣告新增多個屬性。

  • 它可以解析類名。

  • 屬性可以名稱空間。

  • 它可以有零個或多個引數。

PHP 8 屬性語法

  • 在 PHP 8 中,#[ ] (# 和方括號)用於屬性宣告。

  • 我們可以在 #[ ] 中宣告多個屬性,用逗號分隔。

  • 引數是可選的,但需要用圓括號 () 括起來。

  • 引數可以是字面值或常量表達式。

屬性:語法

#[attribute]

例如,我們可以將屬性用於類。

#[Attribute]
Final class EmpClass{
}

示例:屬性函式

#[Attr('param')]
function Exam(){}

示例:屬性類

#[Attr('param')]
class Exam{}

示例:屬性類屬性

class Emp{
   #[Attribute('param')]
   public $name;
}

示例:屬性類常量

Class Emp{
   #[Attribute('emp')]
   private const EMP = 'emp';
}

示例:屬性函式

#[Attribute('emp')]
function exam(){}

示例:屬性方法引數

Function emp(#[Attribute('param')]$name){
}

示例:使用函式、方法、引數和常量的 PHP 8 屬性

<?php
#[MyAttribute]
class Emp
{
   #[MyAttribute]
   public const EMP = 'emp';
   #[MyAttribute]
   public $a;
   #[MyAttribute]
   public function foo(#[MyAttribute] $dept){}
}

$object = new #[MyAttribute] class(){};
#[MyAttribute]
function f() {}

$f1 = #[MyAttribute] function(){};
$f2 = #[MyAttribute] fn() => 1;
print_r($f1);
?>

輸出

Closure Object ( )

更新於:2021年4月1日

3K+ 次瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.