2016-09-30 165 views
0

請考慮這個類,我有一個html頁有兩種形式,第一我提交form1,然後我提交第二個。我在第一個函數中更改了$aaa值,但在提交第二個表單後,它顯示空數組並丟失了func1中的指定值。
我想在func2中訪問func1分配的值。在一個函數中分配類屬性,並在另一個函數中使用它在php

class Myclass 
{ 
    private $aaa = array(); 

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

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

在HTML文件中:

<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是無狀態的,它不會自動維護表單帖子之間的數據。您必須找到一種方法來保持自己的應用程序狀態,方法是將數據保存到數據庫,會話或與客戶端進行傳遞。 –

+1

正如Mark H.所說的那樣,當你爲第二種形式再次加載控制器時PHP是無狀態的,你將失去這些值。如果您正在使用會話,我會建議使用func1()將數據保存到會話中。 – bos570

+0

傳遞數組的最佳方式是什麼?會議是一個好方法嗎? – MehdiRahimi

回答

1
class MyClass 
{ 

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

public function func1() .... 

現在,您可以在會話個人裏面保存數據到用戶的瀏覽器

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

那麼同樣,當附加或更改對象屬性aaa - 更新s激情

相關問題