PHP Dynamischer Zugriff auf const-Member



  • Moin moin,

    ich habe eine Frage bezüglich des Zugriffs auf const-deklarierte Member und den dynamischen Zugriff auf solche. Folgendes Konstrukt:

    class A{
    
         const a = 'foo';
         //...
    }
    
    // Versuch auf diesen const-Member zuzugreifen:
    
    $constMember = 'a';
    $value = A::$constMember;
    

    Würde sofort den Fehler ergeben auf den den - nicht vorhandenen - statischen Member "constMember" zuzugreifen. Ich hätte aber gerne, dass der Inhalt von constMember vorher expandiert wird und damit auf A::a zugegriffen wird. Ich habe schon A::{constMember} probiert, aber hier bekomme ich sofort nen Syntaxfehler um die Ohren gehauen. Wie kann ich den Zugriff also realisieren?



  • also wenn dann A::****{constMember} oder nicht?

    Ich meld mich eventuell gleich nochmal dazu 🙂

    edit:
    http://www.php.net/manual/en/language.variables.variable.php

    gugg doch da mal nach .. weiss etz net obs bei classes überhaupt nicht geht oder nur bei den methoden nicht..



  • also wenn dann A::${$constMember} oder nicht?
    

    In diesem Fall würde er ja constMemberexpandierenunddanachaufdenstatischenMemberA::constMember expandieren und danach auf den statischen Member A::a zugreifen wollen. Ich habe die jeweiligen Manuals schon nach ner passenden Lösung durchsucht - immer ohne Erfolg. Ich schätze eher, dass ein solcher Zugriff syntaktisch nicht vorgesehen ist. Jetzt kann ich mir wohl aussuchen, ob ich die jeweiligen Member alle statisch mache oder es mit einem überaus hübschen eval() versuche 😃



  • Oder vlt. gibt es ja eine nützliche Funktion hier: http://de2.php.net/manual/de/ref.classobj.php
    Oder Reflection: http://de2.php.net/manual/de/class.reflectionclass.php


Anmelden zum Antworten