Attributsyntax

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Attributsyntax

Det finns flera delar till attributsyntaxen. Först och främst är en attributdeklaration alltid innesluten med en start `#[` och ett motsvarande slut `]`. Inuti dessa kan ett eller flera attribut listas, separerade med kommatecken. Attributnamnet kan vara ett oklassificerat, kvalificerat eller fullt kvalificerat namn enligt beskrivningen i "Grunderna för att använda namespaces". Argument till attribut är valfria, men är inneslutna i de vanliga parenteserna `()`. Argument till attribut kan endast vara bokstavliga värden eller konstanta uttryck. Både positionell och namngiven argumentsyntax kan användas.

Attributnamn och deras argument kopplas till en klass, och argumenten skickas till dess konstruktör när en instans av attributet begärs genom Reflection API. Därför bör en klass introduceras för varje attribut.

Exempel #1 Attributsyntax

<?php
// a.php
namespace MyExample;

use Attribute;

#[Attribute]
class MyAttribute
{
    const VALUE = 'value';

    private $value;

    public function __construct($value = null)
    {
        $this->value = $value;
    }
}

// b.php

namespace Another;

use MyExample\MyAttribute;

#[MyAttribute]
#[\MyExample\MyAttribute]
#[MyAttribute(1234)]
#[MyAttribute(value: 1234)]
#[MyAttribute(MyAttribute::VALUE)]
#[MyAttribute(array("key" => "value"))]
#[MyAttribute(100 + 200)]
class Thing
{
}

#[MyAttribute(1234), MyAttribute(5678)]
class AnotherThing
{
}
?>


Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.attributes.syntax.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.