2016-09-30 22 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激情

相关问题