在一个函数中分配类属性,并在另一个函数中使用它在php
问题描述:
请考虑这个类,我有一个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>
答
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激情
php是无状态的,它不会自动维护表单帖子之间的数据。您必须找到一种方法来保持自己的应用程序状态,方法是将数据保存到数据库,会话或与客户端进行传递。 –
正如Mark H.所说的那样,当你为第二种形式再次加载控制器时PHP是无状态的,你将失去这些值。如果您正在使用会话,我会建议使用func1()将数据保存到会话中。 – bos570
传递数组的最佳方式是什么?会议是一个好方法吗? – MehdiRahimi