# Datentyp struct in PHP!?



## shutdown (13. Januar 2005)

Hi!

Ich hätte mal die Frage, ob man in PHP genauso wie in C eigene Datenstrukturen anlegen kann.

Folgendes ist in C möglich:

struct datenbank
{
    int uid;
    char vorname[];
    char nachname[];
    int strasse[];
};

Gibt es das auch in PHP? 
(Bin weder hier im Forum noch auf php.net fündig geworden)

Vielen Dank!

cu shutdown


----------



## Sicaine (13. Januar 2005)

Nö.

Aus dem ganz einfachen Grund, dass PHP typenschwach ist. Weshalb du auch keine Funktionen überladen kannst oder sonstiges.


----------



## webfreak (13. Januar 2005)

ne gibt es nicht, lässt sich aber durch ein array abbilden.


----------



## shutdown (13. Januar 2005)

Wie würde denn dann eine Strukturvariable angesprochen werden, wenn ich das ganze über ein Array realisiere?

Die erste Initialsierung (wenn die Anzahl der Einträge variabel bleiben soll, würde ja ungefähr so ausehen):

datenbank1[][uid] = 1;
datenbank1[][vorname] = "Vorname"
datenbank1[][nachname] = "Nachname"
datenbank1[][strasse] = "Strasse";

Wie würde ich denn da dann einen neuen Eintrag einfach anhängen, wenn ich vorher nicht weiß, wieviele eigentlich schon drin sind?

cu shutdown


----------



## Sicaine (13. Januar 2005)

wie wärs mit zählen der Elemente? Ja rat mal count() ;-) oderso:
$datenbank1[] = array(1, 'vorname', 'nachname', 'straße');


----------



## hpvw (13. Januar 2005)

Aus dem 


> datenbank1[][uid] = 1;
> datenbank1[][vorname] = "Vorname"
> datenbank1[][nachname] = "Nachname"
> datenbank1[][strasse] = "Strasse";


mach mal besser das:

```
$datenbank=array();

//$temp wird als Array initialisiert
$temp=array();
$temp['uid'] = 1;
$temp['vorname'] = "Vorname"
$temp['nachname'] = "Nachname"
$temp['strasse'] = "Strasse";

//Das array $temp wird an das Ende von $datenbank angehängt:
$datenbank[]=$temp; 

$temp=array();
$temp['uid'] = 2;
$temp['vorname'] = "Vorname2"
$temp['nachname'] = "Nachname2"
$temp['strasse'] = "Strasse2";
$datenbank[]=$temp;

//usw.

//Daten aus dem Array rausholen und den ehem. Inhalt von $temp bekommen:
$eintrag1InDatenbank = $datenbank[0];

//Alle $temp's nacheinander auslesen:
foreach ($datenbank as $item) {
  //mach was mit $item
}
```

Ansonsten: Arrayfunktionen auf http://www.php.net. Da gibts noch viel mehr, was Du mit Arrays machen kannst.

Und merke:
In PHP ist eine Variable eine Variable, ist eine Variable ist ... und nicht eine Variable eines bestimmten Typs.
$temp kann also durch einfaches zuweisen eines Strings wieder von einem Array zu einem String werden.


----------

