Deklarera attributklasser: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 41: Rad 41:
Följande mål kan specificeras:
Följande mål kan specificeras:


* `Attribute::TARGET_CLASS`
* [[Attributklassen#Attribute::TARGET CLASS|Attribute::TARGET_CLASS]]
* `Attribute::TARGET_FUNCTION`
* [[Attributklassen#Attribute::TARGET FUNCTION|Attribute::TARGET_FUNCTION]]
* `Attribute::TARGET_METHOD`
* Attribute::TARGET_METHOD
* `Attribute::TARGET_PROPERTY`
* Attribute::TARGET_PROPERTY
* `Attribute::TARGET_CLASS_CONSTANT`
* Attribute::TARGET_CLASS_CONSTANT
* `Attribute::TARGET_PARAMETER`
* Attribute::TARGET_PARAMETER
* `Attribute::TARGET_ALL`
* Attribute::TARGET_ALL


Som standard kan ett attribut endast användas en gång per deklaration. Om attributet ska kunna användas flera gånger på en deklaration måste det specificeras som en del av bitmasken till `#[Attribute]`-deklarationen.
Som standard kan ett attribut endast användas en gång per deklaration. Om attributet ska kunna användas flera gånger på en deklaration måste det specificeras som en del av bitmasken till `#[Attribute]`-deklarationen.

Versionen från 24 augusti 2024 kl. 11.38

Deklarera attributklasser

Även om det inte är strikt nödvändigt rekommenderas det att skapa en faktisk klass för varje attribut. I det enklaste fallet behövs endast en tom klass med attributet `#[Attribute]` deklarerat, som kan importeras från det globala namnutrymmet med en `use`-sats.

Exempel #1 Enkel attributklass

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}
?>

För att begränsa vilken typ av deklaration ett attribut kan tilldelas kan en bitmask skickas som det första argumentet till `#[Attribute]`-deklarationen.

Exempel #2 Använda målspecificering för att begränsa var attribut kan användas

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}
?>

Att deklarera `MyAttribute` på en annan typ kommer nu att kasta ett undantag under anropet till `ReflectionAttribute::newInstance()`.

Följande mål kan specificeras:

Som standard kan ett attribut endast användas en gång per deklaration. Om attributet ska kunna användas flera gånger på en deklaration måste det specificeras som en del av bitmasken till `#[Attribute]`-deklarationen.

Exempel #3 Använda IS_REPEATABLE för att tillåta attribut på en deklaration flera gånger

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}
?>


Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.attributes.classes.php
PHP
Språkreferens
Språkreferens#Attribut


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.