2016-09-30 3 views
0

Bitte berücksichtigen Sie diese Klasse, ich habe eine html Seite mit zwei Formen, zuerst reiche ich form1 ein und danach sende ich zweiten. Ich ändere $aaa Wert in der ersten Funktion, aber nach dem Senden des zweiten Formulars, zeigen leeren Array und verlorenen zugewiesenen Wert in func1.
Ich möchte auf func1 zugewiesenen Wert in func2 zugreifen.Klasseneigenschaft in einer Funktion zuweisen und in einer anderen Funktion in PHP verwenden

class Myclass 
{ 
    private $aaa = array(); 

    public function func1() { 
     $this->aaa= [1, 2, 3]; 
    } 

    public function func2() { 
     var_dump($this->aaa); 
    } 
} 

In der HTML-Datei:

<form action=" FUNC1 " method="post" id="form1"> 
    <button type="submit">FUNC1</button> 
</form> 

<form action=" FUNC2 " method="post" id="form2"> 
    <button type="submit">FUNC2</button> 
</form> 
+7

php ist zustandslos, es wird nicht automatisch Daten zwischen Form Posts pflegen. Sie müssen eine Möglichkeit finden, den Anwendungsstatus selbst zu verwalten, indem Sie Daten in einer Datenbank, einer Sitzung speichern oder sie mit dem Client austauschen. –

+1

wie Mark H. sagte, da PHP zustandslos ist, wenn Sie den Controller für das zweite Formular erneut laden, verlieren Sie die Werte. Ich würde empfehlen, func1() zu verwenden, um die Daten in der Sitzung zu speichern, wenn Sie mit Sitzungen arbeiten. – bos570

+0

Was ist der beste Weg, um ein Array zu übergeben? Ist die Sitzung ein guter Weg? – MehdiRahimi

Antwort

1
class MyClass 
{ 

public function __construct(
    $closure 
) { 
    $this->aaa = $closure(); 
} 

public function func1() .... 

Sie jetzt Ihre Daten in einer Sitzung Person, dass die Benutzer-Browser

session_start(); 
$myClass = new MyClass(function() use($_SESSION) { if(isset($_SESSION['index_here'])) { return $_SESSION['index_here']; } }); 

dann dem gleichen halten können, wenn Anfügen oder Ändern der Objekteigenschaft aaa - Aktualisieren Sie die s ession

Verwandte Themen