我要把它弄得太复杂,只是把它分解成主要部分。
我有一个表单在表单被提交时更改变量的布尔值,但是它被函数调用,函数必须更改变量。
class updates
{
var $yesno = false;
function updateBool()
{
$this->yesno = true;
}
}
因此,当表单提交时,它将调用$up->updateBool()
将布尔值更改为true。当我var_dump($up->yesno)
时,false
应该是true
。如果我这样做:
class updates
{
var $yesno = false;
function updateBool()
{
$this->yesno = true;
var_dump($this->yesno); // <-- outputs true
}
}
那么为什么我不能让变量在单独的脚本中打印出true
?
修改
$sql = "SELECT boolean
FROM config
WHERE boolean = 'true'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0)
{
$up->updateBool();
}
else
{
header("Location: index.php?d=none");
}
这是调用它的代码的一部分。我可以确认SQL语句中有多条记录。
答案 0 :(得分:1)
因此,当表单提交时,它将调用$ up-&gt; updateBool()将布尔值更改为true
您似乎正在切换到新页面,其中$up
将成为新对象。对象不会跨请求持久存在。当你调用一个新页面时,PHP“丢失了它的内存”,并且所有变量都是从头开始的。
要在页面请求中保留值,您需要使用类似sessions的内容。
答案 1 :(得分:0)
class updates
{
public $yesno;
function __construct(){
$this->yesno = false;
}
function updateBool()
{
$this->yesno = true;
}
}