更新PHP类外部的类变量
我要把它弄得太复杂了,只是把它分解成主要部分 我有一个表单,当表单被提交时,它会更改变量的布尔值,但是它被函数调用,函数必须更改变量更新PHP类外部的类变量,php,oop,class,variables,Php,Oop,Class,Variables,我要把它弄得太复杂了,只是把它分解成主要部分 我有一个表单,当表单被提交时,它会更改变量的布尔值,但是它被函数调用,函数必须更改变量 class updates { var $yesno = false; function updateBool() { $this->yesno = true; } } 因此,当表单提交时,它将调用$up->updateBool()将布尔值更改为true。当我做var\u dump($up->yesno)时
class updates
{
var $yesno = false;
function updateBool()
{
$this->yesno = true;
}
}
因此,当表单提交时,它将调用$up->updateBool()
将布尔值更改为true。当我做var\u dump($up->yesno)
时,它会在应该是true
的时候说false
。如果我这样做:
class updates
{
var $yesno = false;
function updateBool()
{
$this->yesno = true;
var_dump($this->yesno); // <-- outputs true
}
}
这是调用它的代码的一部分。我可以确认SQL语句中有多条记录
class updates
{
public $yesno;
function __construct(){
$this->yesno = false;
}
function updateBool()
{
$this->yesno = true;
}
}
因此,当表单提交时,它将调用$up->updateBool()将布尔值更改为true
您似乎正在切换到一个新页面,$up
将成为一个新对象。对象不会跨请求持久化。当您调用一个新页面时,PHP会“丢失内存”,并且所有变量都是从头开始的
要在页面请求之间持久化值,您需要使用以下内容。请在返回
false
时显示您正在使用的确切代码,以及您在何时进行var转储?`以及在新代码中的何处进行var\u转储
?嗯。您的答案似乎合理,我一直认为对象在从一个页面移动到另一个页面后可以在PHP中传递。我会接受你的答案,因为这是一个合乎逻辑的答案。@lolwut会话通常是一种方式,尽管你不应该在会话中放入太多数据。有关持久化对象的高级快速方法,请参见为了传递对象,您需要启动一个会话,然后将该对象分配给会话变量。否则,所有对象只在页面的生存期内存在,并在每次请求页面时重新创建。如果变量/对象是私有的,那么将它们设置为可篡改的会话就不符合逻辑了。@lolwut这是真的,是的。除了巧克力奶油外,饼干里什么都不能储存。美味,美味的巧克力奶油。。。。(流口水)
class updates
{
public $yesno;
function __construct(){
$this->yesno = false;
}
function updateBool()
{
$this->yesno = true;
}
}