Ankündigung

Einklappen
Keine Ankündigung bisher.

Trait eingebunden?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Trait eingebunden?

    Wie kann man ermitteln ob ein trait eingebunden ist?

    ich habe es wie folgt probiert
    PHP-Code:
    trait SoftDeleted {
            .....
    }

    class 
    Table  {
            public function 
    traitUsed() {
                  
    $traits class_uses($this);
                 
                 if ( 
    $traits !== false ) {
                    return (
    in_array('SoftDeletes'$traits));
                 }
                 
                 return 
    null;
            }
    }

    class 
    UserTable extend Table {
                  use 
    SoftDeleted;
    }

    $testclass = new UserTable();
    var_dump$testclass->traitUsed() );        // Gibt false aus??? 

  • #2
    http://php.net/manual/de/function.class-uses.php#110752

    Kommentar


    • #3
      Zwischen SoftDeleted und 'SoftDeletes' besteht auch ein kleiner Unterschied. Nimm zukünftig lieber SoftDeleted::class

      Kommentar


      • #4
        Zitat von SirSnyder Beitrag anzeigen
        Zwischen SoftDeleted und 'SoftDeletes' besteht auch ein kleiner Unterschied. Nimm zukünftig lieber SoftDeleted::class
        Bezogen auf den 2ten Satz: Eigentlich nicht. Zumindest dafür was es machen soll. Zum ersten stimme ich dir voll und ganz zu.

        Kommentar


        • #5
          Danke schön

          Kommentar


          • #6
            Zitat von Abo Beitrag anzeigen

            Bezogen auf den 2ten Satz: Eigentlich nicht. Zumindest dafür was es machen soll.
            Der Grund erschließt sich mir jetzt nicht wirklich. Was soll es denn machen?


            PHP-Code:
            namespace test\sonstwas;

            trait 
            SoftDeleted {}

            class 
            Table  {
                public function 
            traitUsed() {
                    
            $traits class_uses($this);

                    if ( 
            $traits !== false ) {
                        return (
            in_array(SoftDeleted::class, $traits));
                    }

                    return 
            null;
                }
            }

            class 
            UserTable extends Table {
                use 
            SoftDeleted;
            }

            $testclass = new UserTable();

            var_dump$testclass->traitUsed()); 
            Code:
            bool(true)

            Kommentar

            Lädt...
            X