VAR xyz = array ( 'bla' => KONSTANTE .. geht nicht?

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

  • VAR xyz = array ( 'bla' => KONSTANTE .. geht nicht?

    Moin,

    Wieso funktioniert das nicht:

    PHP-Code:
    define'R_USER' );
    define'R_ADMIN' );

    class 
    home
    {

    var 
    $rechte = array( 'index' => R_USER R_ADMIN ); 
    Ergibt ein Fehler bei der Tilde '|'.

    Dagegen funktioniert das hier problemlos:

    PHP-Code:
    define'R_USER' );
    define'R_ADMIN' );

    class 
    home
    {

     function 
    __construct() 
     {
         
    $this->rechte = array( 'index' => R_USER R_ADMIN );
     } 
    Any Idea?

    Thx, Denny

  • #2
    Und innerhalb einer Klasse?!? Als Variablen-Def?!

    Kommentar


    • #3
      Grund kann ich dir nicht nennen, aber verschieb die Zuweisung in den Konstruktor, da macht sie IMHO mehr Sinn...
      EDIT:
      Sorry, fürs löschen meiner Antwort, hatte beim ersten mal nicht gesehen, dass es auch in einer Klasse definiert werden soll.
      Zuletzt geändert von TobiaZ; 23.07.2008, 14:09.

      Kommentar


      • #4
        Tjo, muss ich ja sowieso. Will nur sicher sein, dass es da keine Schreibweise gibt, die ich nicht kenne.

        Kommentar


        • #5
          Du vermischst übrigens PHP 4 (var) mit PHP 5 (__construct).

          Kommentar


          • #6
            deine Variable sollte aber vor dem __construct noch deklariert werden.

            OffTopic:

            und übrigens:
            ~ ist eine Tilde
            | ist eine Pipe

            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              PHP-Code:
              define'R_USER' );
              define'R_ADMIN' );

              class 
              home
              {
               protected 
              $rechte = array();
               function 
              __construct() 
               {
                   
              $this->rechte = array( 'index' => R_USER R_ADMIN );
               }

              Bei der Deklaration einer Klasseneigenschaft dürfen nur PHP Sprachkonstrukte verwendet werden!
              Keine Variablen Funktionen oder gar Operatoren. | ist ein Operator.

              Und ja, genau für solche Zwecke ist der Konstruktor erfunden worden.


              Zuletzt geändert von combie; 23.07.2008, 14:29.
              Wir werden alle sterben

              Kommentar


              • #8
                Versteh ich jetzt nicht.

                PHP5 verlangt ebenso nach dem VAR wenn du eine Klassenvariable definieren willst. Nur kann VAR offensichtlich keine mehrfachen Konstanten auflösen, was bei einer normalen Variablenzuweisung (was nur innerhalb einer Funktion oder außerhalb einer Klasse geht)
                funktioniert.

                Kommentar


                • #9
                  Original geschrieben von combie
                  Bei der Deklaration einer Klasseneigenschat dürfen nur PHP Sprachkunstrukte verwendet werden!
                  Keine Variablen Funktionen oder gar Operatoren. | ist ein Operator.

                  Und ja, genau für solche Zwecke ist der Konstruktor erfunden worden. [/B]
                  Danke, das war die abschließende Antwort.

                  Kommentar


                  • #10
                    Warum glaubst du dem Handbuch nicht?
                    Siehe: http://www.php.net/manual/de/language.oop5.basic.php Beispiel3

                    *edit*
                    Zu spät, aber ich lasse es mal trotzdem stehen

                    PHP5 verlangt ebenso nach dem VAR
                    Falsch!
                    Var stammt aus der PHP4 Zeit und sollte nicht in PHP5 Klassen verwendet werden.
                    var == public
                    Aber das steht auch im Handbuch!



                    Zuletzt geändert von combie; 23.07.2008, 14:32.
                    Wir werden alle sterben

                    Kommentar

                    Lädt...
                    X