Rumah  >  Soal Jawab  >  teks badan

PHP menggunakan ENUM dalam sifat

<p>Lihat kod berikut: </p> <pre class="brush:php;toolbar:false;"><?php Jenis enum: rentetan { kes A = 'a'; kes B = 'b'; } #[Atribut(Atribut::TARGET_CLASS)] kelas MyAttribute { fungsi awam __construct(array baca sahaja $pemetaan) { } } #[MyAttribute(pemetaan: [Jenis::A->nilai => ''])] Entiti kelas { } </pra> <p>Ralat <kod>Ungkapan berterusan mengandungi operasi tidak sah</kod>. Saya mahu menggunakan nilai enum dalam sifat saya untuk menentukan konfigurasi. Nampaknya ini adalah pepijat dalam php. Perlukah dilaporkan atau bagaimana? </p>
P粉593118425P粉593118425392 hari yang lalu452

membalas semua(1)saya akan balas

  • P粉536532781

    P粉5365327812023-08-27 12:10:24

    Masalahnya ialah apabila kita memanggil Types::A->value, ia sebenarnya mencipta contoh enum, yang bukan nilai tetap. Untuk menyelesaikan masalah ini, tentukan pemalar dan rujuknya.

    <?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 {
    
    }
    

    Beri perhatian kepada masalah dalam php

    ini

    balas
    0
  • Batalbalas