[PHP]Strukturen Emulation
Verfasst: Mo Jan 14, 2013 9:42 pm
Hallo,
ich habe mir heute mal ein paar Tutorien hier über Strukturen durchgelesen, und die waren leider alle in C/C++. Da dachte ich mir, dass es vielleicht mal ganz Interessant wäre, struct in PHP nach zu "bauen":
Beispiel1: Simple Struktur mit 'null' als inhalt:
Beispiel2: Simple Struktur mit Standard-Inhalt:
Mfg,
Darksider3
ich habe mir heute mal ein paar Tutorien hier über Strukturen durchgelesen, und die waren leider alle in C/C++. Da dachte ich mir, dass es vielleicht mal ganz Interessant wäre, struct in PHP nach zu "bauen":
Code: Alles auswählen
<?php
class Struct
{
/**
* Definiert eine neue struktur, ohne jegliche Einstellungen(bzw. inhalt)
*/
public static function factory()
{
$struct = new self;
foreach (func_get_args() as $value) {
$struct->$value = null;
}
return $struct;
}
/**
* Ersellt eine neue Struktur des Typs $this
*/
public function create()
{
// Die Struktur klonen, um Sie unverändert zu lassen
$struct = clone $this;
// Entwirft die neue Struktur
$properties = array_keys((array) $struct);
foreach (func_get_args() as $key => $value) {
if (!is_null($value)) {
$struct->$properties[$key] = $value;
}
}
// Zurückgeben der eingetragenen Struktur
return $struct;
}
}
Code: Alles auswählen
<?php
require 'Struct.php';
// struktur definieren
$struct1 = Struct::factory('var1', 'var2');
$instance0 = $struct1->create('val0-1', 'val0-2');
$instance1 = $struct1->create('val1-1', 'val1-2');
$instance2 = $struct1->create('val2-1'); // var2 ist null
echo $instance1->var2;
Code: Alles auswählen
<?php
require 'Struct.php';
$struct2 = Struct::factory('var3', 'var4');
$struct2->var3 = 'default';
$instance3 = $struct2->create('val3-1', 'val3-2');
$instance4 = $struct2->create('val4-1', 'val4-2');
$instance5 = $struct2->create(null, 'val5-2'); // null bekommt den Standardinhalt
echo $instance4->var3;
Darksider3
