我知道最好按照它的意思做事情,使用$this->fname来声明和设置类....中的变量我明白了…
但是为了不让这个问题太长,我们假设在我的类中有一个函数,它提取和解析数据到很多很多变量中,这些变量设置在$var="中;方式。
说. .$fname = " sollen ";$age = "20";
我在同一类中有另一个函数,我应该在稍后的代码中调用它,这个函数需要以相同的方式调用这些变量
$currentName = $fname;
etc..
如果我尝试在第一个函数中正确设置类变量$this->fname,第二个函数/例程将会中断。
和我不能全球化$fname等变量。因为我需要变量留在
类中还有其他方法吗?
让第一个方法返回数组,然后在需要时将其传递给第二个方法
Class Foo
{
public function first()
{
// process that builds an array
return $array;
}
public function second($array)
{
// do something with array
}
}
$foo = new Foo;
$array = $foo->first();
// other stuff in code
$foo->second($array);
编辑:考虑一下,没有必要将数组存储在类之外
class Bar
{
protected $array_from_first;
public function first()
{
$this->array_from_first = $array;
}
public function second()
{
$array = $this->array_from_first;
}
}
通过声明变量$var = "value";
,您将在本地堆栈中声明该变量。当函数执行完成时,堆栈将被清除,并且不能从函数作用域外访问堆栈。
你必须使用:
- 实例变量(你说你不能,虽然我想看看当你试图使用它们时会发生什么,因为我怀疑你只是没有正确使用这里的变量)。
- 静态类变量(但如果你需要这些变量为对象的每个实例不同,这显然是行不通的)