PHP verwendet ENUM in Eigenschaften
P粉593118425
P粉593118425 2023-08-26 23:17:00
0
1
449
<p>Sehen Sie sich den folgenden Code an: </p> <pre class="brush:php;toolbar:false;"><?php Aufzählungstypen: string { Fall A = 'a'; Fall B = 'b'; } #[Attribute(Attribute::TARGET_CLASS)] Klasse MyAttribute { öffentliche Funktion __construct(öffentliches schreibgeschütztes Array $mapping) { } } #[MyAttribute(mapping: [Types::A->value => ''])] Klasse Entität { } </pre> <p>Fehler <code>Konstanter Ausdruck enthält ungültige Operation</code>. Ich möchte Enum-Werte in meinen Eigenschaften verwenden, um die Konfiguration zu definieren. Es sieht so aus, als wäre das ein Fehler in PHP. Sollte es gemeldet werden oder was? </p>
P粉593118425
P粉593118425

Antworte allen(1)
P粉536532781

问题是,当我们调用 Types::A->value 时,它​​实际上创建了一个枚举的实例,它不是一个常量值。 为了解决这个问题,定义一个常量并引用它。

<?php

abstract class Type {
    public const A = 'a';
    public const B = 'b';
}

enum TypesEnum:string {
    case A = Type::A;
    case B = Type::B;
}

#[Attribute(Attribute::TARGET_CLASS)]
class MyAttribute {
    public function __construct(public readonly array $mapping)
    {
    }
}

#[MyAttribute(mapping: [Type::A => ''])]
class Entity {

}

注意这个php 中的问题

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!