thecreep: Set Of bei PHP?

Hallo,
ich hab mal folgende Frage, gibt es bei PHP sowas wie Set of?

Set Of kenn ich von Pascal her:
TFarbKanaele = (fkRed, fkGreen, fkBlue, fkAlpha);

var fk: TFarbkanaele;  
  
fk:=[fkRed OR fkAlpha];  
  
if(fkRed in fk) showmessage('Der Rot-Kanal ist in fk existent');

Geht das irgendwie in PHP?

MfG thecreep

  1. ich hab mal folgende Frage, gibt es bei PHP sowas wie Set of?

    in_array() könnte das Richtige für dich sein - bzw. allgemein solltest du zumindest mal alle Arrayfunktionen überfliegen, da sind sehr viele nützliche Funktionen dabei.

  2. Hi!

    ich hab mal folgende Frage, gibt es bei PHP sowas wie Set of?

    Nein, da PHP ein anderes Typkonzept verfolgt als beispielsweise Pascal. Solche Typen wie Enumerationen oder Sets können einfach nicht deklariert werden.

    Geht das irgendwie in PHP?

    Irgendwie geht das allerdings schon, indem du ein Array verwendest.

    Lo!

  3. Hello,

    ich hab mal folgende Frage, gibt es bei PHP sowas wie Set of?

    Set Of kenn ich von Pascal her:
    TFarbKanaele = (fkRed, fkGreen, fkBlue, fkAlpha);

    PHP kennt in der Anwendungsschicht keine reinen Deklarationstypen. Geht nicht, wegen Interpreter-Sprache.

    Alle Bezeichner erhalten auch eine Definition zugewiesen, werden also zur "variablen Konstante" (das würde Pascal dazu sagen) oder zur echten Variable. Das bedeutet, dass es auch zur Laufzeit ein Bezeichner:Wert-Paar gibt.

    Was ich in PHP vermisse, sind Konstanten-Arrays.
    Aber wenn ich jetzt anfange, die hier zu propagieren, und sich genügend Mitstreiter finden, werden sie sicherlich in PHP 6.1 enthalten sein, wenn sie nicht schon in 6.0 drin sind (isch habe noch nicht wirklich geguckt) :-))

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  4. Hallo,

    ich hab mal folgende Frage, gibt es bei PHP sowas wie Set of?

    Nein. Allerdings kannst Du das nachbauen mit Bitmasken:

    define ('FK_RED', 0x01);  
    define ('FK_GREEN', 0x02);  
    define ('FK_BLUE', 0x03);  
    define ('FK_ALPHA', 0x04);  
      
    $fk = FK_RED | FK_ALPHA;  
      
    if ($fk & FK_RED) {  
      echo "Der Rot-Kanal ist in fk enthalten.<br />";  
    }
    

    Viele Grüße,
    Christian

    --
    Mein "Weblog" [RSS]
    Using XSLT to create JSON output (Saxon-B 9.0 for Java)
    »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                -- Kommentar bei TDWTF
    1. Hallo,

      Nein. Allerdings kannst Du das nachbauen mit Bitmasken:

      define ('FK_RED', 0x01);

      define ('FK_GREEN', 0x02);
      define ('FK_BLUE', 0x03);
      define ('FK_ALPHA', 0x04);

        
      Ok, ich bin wohl noch nicht ganz ausgeschlafen, muss natürlich heißen:  
        
      ~~~php
      define ('FK_RED', 0x01);  
      define ('FK_GREEN', 0x02);  
      define ('FK_BLUE', 0x04);  
      define ('FK_ALPHA', 0x08);
      

      Viele Grüße,
      Christian

      --
      Mein "Weblog" [RSS]
      Using XSLT to create JSON output (Saxon-B 9.0 for Java)
      »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                  -- Kommentar bei TDWTF