我正在寻找一种方法来从同一个类中的另一个函数访问函数中的变量。我搜索的是使用全局变量。当我在同一页面(而不是类)上创建方法和打印代码时,它运行良好,但是当我在类中分离这些方法并从主页面调用它时,它不起作用。
哦..我发现我不能使用全局变量,因为每当i_type()方法在主页上的表中迭代时,$ rand_type应该是不同的。我需要在两种方法中使用相同的$ rand_type值。
(情况是......在我的游戏中,我将首先随机打印不同类型的项目,然后单击其中一项以随机确定班级和级别。)
我该如何解决?
class Item {
function i_type() {
$rand_type = rand(1,8);
// some other codes below..
return $some_data;
}
function i_buy() {
$rand_class = rand(1,3);
$rand_level = rand(1,5);
// some other codes below..
return $some_data;
}
}
答案 0 :(得分:1)
您设置private
或public
个变量(私有更安全但访问受限制)。
class Item {
private $rand_class;
private $rand_level;
function getRandLevel() {
return $this->rand_level;
}
function setRandLevel($param) {
//clean variable before setting value if needed
$this->rand_level = $param;
}
}
然后在创建类
的实例后调用任何函数$class = new Item();
$rand_level = $class->getRandLevel();
$setlvl = 5;
$class->setRandLevel($setlvl);
这称为封装。但这是一个更高的概念。私有/公共变量是这样的访问。
答案 1 :(得分:0)
您可以通过以下方式访问变量:
吸气剂
class Item {
private $rand_type;
private $rand_class;
private $and_level;
public function setRandType($type){ $this->rand_type =$type ;}
public function getRandType(){ return $this->rand_type ;}
public function i_type() {
$this->rand_type = rand(1,8);
// some other codes below..
return $some_data;
}
public function i_buy() {
$this->rand_class = rand(1,3);
$this->rand_level = rand(1,5)
// some other codes below..
return $some_data;
}
}
所以你实例化你的对象:
$item = new Item();
当您致电$item->i_type()
然后$item->getRandType()
时,您将获得i_buy()
的rand值。