如何在另一个类中销毁(取消设置)变量?

时间:2014-02-09 11:03:25

标签: php

我是否可以在不触及核心代码的情况下为脚本的核心类中的变量取消设置(并设置新值)?

这是类中设置的变量的值:

class MyClass {
    var $myvar = 'value';
    ...
    ...
}

我尝试了这个,但没有奏效;

function unset_myvar($myvar) {
    unset($myvar);
    $myvar = 'newvalue';

    return $myvar;
}

由于

4 个答案:

答案 0 :(得分:0)

以下代码打印已分配的值,取消设置变量,然后为变量设置新值。

<?php

class MyClass {
    var $myvar = 'value';

    public function dispvar()
    {
        echo $this->myvar;
    }

    public function destroyvar()
    {
        unset($this->myvar);
    }

    public function setvar($param)
    {
        $this->myvar=$param;
    }

}

$a = new MyClass();
$a->dispvar(); //"prints" value
$a->destroyvar();
$a->dispvar(); //"prints" nothing !!
$a->setvar('blabla');
$a->dispvar(); //"prints" blabla

Demo

答案 1 :(得分:0)

相反:

$myvar = 'newvalue';

您正在寻找

$this->myvar = 'newvalue';

你问的是基本问题,所以我建议不要只是从我的答案中复制行,你现在前往PHP.net并阅读有关PHP基础知识的手册

答案 2 :(得分:0)

试试这个:

 class MyClass {
        var $myvar = 'value';

        function unset_myvar($myvar) {
           unset($this->myvar);
           $this->myvar = $myvar;

          return $this->myvar;
        }
    }

因此,现在您可以创建并对象和取消设置变量并为其设置另一个值:

$obj = MyClass ();
$obj = unset_myvar('someValue');

答案 3 :(得分:0)

<强>简单地:

class MyClass {
    public $myvar = 'value';
    ...
    ...
}

$obj = new MyClass();
unset($obj->myvar);