so speichern Sie den Status des Objektes in php
habe ich 3 Dateien
- class.myclass.php
- test1.php
- test2.php
class.myclass.php enthält
class myclass
{
public $value;
function assign($input)
{
$this->value=$input;
}
function show()
{
echo $this->value;
}
}
$obj=new myclass();
test1.php enthält
require("class.myclass.php");
$obj->assign(1);
$obj->show();
test2.php enthält
require("class.myclass.php");
$obj->show();
In test2.php die Methode $obj->show();
zeigt nicht den Wert, den die Methode $obj->assign(1);
zugewiesen hat, in test1.php
Ich denke, wenn ich laufen test2.php das Objekt $obj wird wieder angelegt, so dass der zugewiesene Wert wird entfernt. Gibt es irgendwelche Möglichkeiten, um zu sparen den Zustand der Objekte, sodass ich von anderen php-Seiten
Ihre Hilfe wird sehr geschätzt werden. Danke !!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg ist, speichern Sie das Objekt in serialisierter form in eine $_SESSION-variable, also ist es automatisch erhalten zwischen Zugriffe auf Ihre Website.
test1.php:
test2.php:
Für so ein einfaches Objekt, das ist alles, was benötigt wird. Wenn Ihr Objekt enthält eine Ressource-handles (mysql-verbindungen, Rollen, Objekte, etc...), dann müssen Sie einige zusätzliche Logik in es zu behandeln Wiederherstellung dieser verbindungen, wenn das Objekt wiederbelebt wird bei unserialize Zeit.
Allerdings möchten Sie vielleicht zu überdenken, auto-instanziieren Sie das Objekt in der class-Datei, oder zumindest in ein singleton-Objekt, so dass Ihre Klasse-Datei können Sie in mehreren Orten, ohne die last-Zeit-um $obj immer überschrieben werden jedes mal, wenn Sie re-schließen Sie die Datei.
Einer Technik, die ich verwendet habe, an meinen Projekten zu schaffen, ist eine gute Konstruktor der Klasse. Damit meine ich erstellen Sie einen Konstruktor erstellen das gleiche Objekt mit einem einzigen argument.
Beispiel:
jetzt können Sie erstellen das Objekt, wenn Sie Shop $E als die $_SESSION-variable, zum Beispiel:
file1.php
file2.php