gpt4 book ai didi

php - 限制变量访问

转载 作者:可可西里 更新时间:2023-11-01 00:11:31 27 4
gpt4 key购买 nike

我需要一个只有一个函数可以编写的变量(我们称该函数为a)并且只有一个其他函数可以读取(我们称该函数为 b)。这可能吗?

最佳答案

你可以使用 static variable :

function foo($val=null) {
static $var = null;
if (!is_null($var)) $var = $val;
return $val;
}

此处 $var 仅在函数 foo 中可见,并在多次调用中保持不变:

foo(123);
echo foo(); // 123
foo(456);
echo foo(); // 456

或者使用带有 private member 的类并使用公共(public)方法访问/修改它:

class A {
private $var;
public function setVar($val) {
$this->var = $val;
}
public function getVar() {
return $this->var;
}
}

私有(private)成员 var 仅对此类的特定实例可见:

$obj1 = new A();
$obj1->setVar(123);
$obj2 = new A();
$obj2->setVar(456);
echo $obj1->getVar(); // 123
echo $obj2->getVar(); // 456

如果您创建成员 static ,那么该类只有一个成员,而不是每个实例:

class A {
private static $var;
public function setVar($val) {
self::$var = $val;
}
public function getVar() {
return self::$var;
}
}
$obj1 = new A();
$obj1->setVar(123);
$obj2 = new A();
$obj2->setVar(456);
echo $obj1->getVar(); // 456
echo $obj2->getVar(); // 456

关于php - 限制变量访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com