Hellihello
mit
class Record {
var $feld1="feld1";
private $feld2="feld2";
function __construct () {
}
function setFeld2($wert) {
$this->feld2=$wert;
}
function write($name) {
file_put_contents($name, serialize($this));
}
function read($name) {
return unserialize(file_get_contents($name));
}
function load($name) {
$dateiInhalt=new Record;
$dateiInhalt=unserialize(file_get_contents($name));
foreach ($dateiInhalt as $key => $value) {
$this->$key=$value;
}
// geht nicht: $this=$dateiInhalt;
}
}
$record = new Record;
$record->setFeld2("feld2 neuer wert");
$record->write("dateiname");
$record1=new Record;
// geht aber unschön, weil nicht in Funktion verpackt
$dateiInhalt=unserialize(file_get_contents("dateiname"));
$record1=$dateiInhalt;
var_dump($record1);
$record2=new Record;
//geht auch, sieht aber irgendwie doppeltgemoppelt aus
$record2=$record2->read("dateiname");
var_dump($record2);
// ist das optimal?
$record3=new Record;
$record3->load("dateiname");
var_dump($record3);
habe ich drei Möglichkeiten durchprobiert, den Inhalt einer Klasseninstanz aus einem serialisierten Datenfile auszulesen. Mein geträumter Favorit ist oben in der Funktion load auskommentiert und geht nicht, denn $this=$datenSatz gibt "Fatal error: Cannot re-assign $this...".
Ist o.g. function load dann die "einfachste/beste/galanteste" Lösung oder ist mir ein Ansatz bisher entgangen?
dank und gruß
frankx