Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

คุณสมบัติใน 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 Attribute โดยใช้ฟังก์ชัน วิธีการ พารามิเตอร์ และค่าคงที่

<?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 ( )