[英]turning variable into class variable
在我的PHP课上,
public $a;
public $b;
public $c;
public $d;
我在构造中设置了值。
我现在正尝试编写一个更新函数,并且试图检查它们是否正在更新,例如$ a,保持不变。
function update($what, $to) {
if ($to == $this->what) return false;
...
}
$updated = $instance->update($a, "Foobar");
if ($updated) echo "Updated";
else echo "You didn't change the value";
但是因为我知道这条线
if ($to == $this->what) return false;
是无效的,我正在寻找一种新的编写方式。
有想法吗?
提前致谢
解决难题的方法是变量变量。 您的更新功能必须按以下方式分配它:
$this->{$what} = $to;
if-check将相应地:
if ($to == $this->{$what}) return false;
而且,您实际上不能使用变量$a
调用update()方法。 您必须给它一个变量名作为字符串:
$instance->update("a", "Foobar");
您可以执行以下操作:
if ($to == $this->$what) return false;
并这样称呼它:
update("a", "Foobar");
这使用了变量变量( http://php.net/manual/zh/language.variables.variable.php )。
您也可以通过引用传递:
function update(&$what, $to) {
if ($to == $what) return false;
...
}
并像在示例中一样进行调用。
$this->$what
应该可以解决问题,如果$what = 'a'
您通常希望避免这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.