在PHP类之外更新类变量

时间:2011-03-16 21:45:17

标签: php oop class variables

我要把它弄得太复杂,只是把它分解成主要部分。

我有一个表单在表单被提交时更改变量的布尔值,但是它被函数调用,函数必须更改变量。

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语句中有多条记录。

2 个答案:

答案 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;
    }
}