2014-10-10 73 views
0

如何访问另一个类中的函数内部的变量。如何访问另一个类中的函数内的变量

在下面的例子..我想访问另一个类中的$ asdf。

例如

class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
    } 
} 
class xyz{ 
    private qw; 
    public function foo2(){ 
     $this->qw= new foo1(); 
     $this->qw->foo1()->asdf; // asdf is not found.. 
     echo $this->qw 
    } 
} 
+1

有你的函数返回值。 – jeroen 2014-10-10 16:41:41

+1

'$ this-> qw-> foo1() - > asdf;'违反几乎所有的规则或范围,语法和可变的可见性。 – 2014-10-10 16:43:13

+0

不可能。 '$ asdf'是一个局部变量,只有在'foo1()'方法正在执行时才会存在。做'$ this-> asdf ='yeah''可以工作,但即使如此,变量也只会在foo1被调用至少一次后才存在。 – 2014-10-10 16:44:50

回答

0

首先确保该函数返回所需的值,即:

return $asdf; 

然后,您可以参考和赋值给变量:

$value = $this->qw->foo1(); 

所以你的代码看起来像这样:

class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
     return $asdf; 
    } 
} 
class xyz{ 
    private qw; 
    public function foo2(){ 
     $this->qw= new foo1(); 
     $value = $this->qw->foo1(); 
     echo $value; 
    } 
} 
0

我建议你创建的classobject访问class财产和foo1()使用return。例如在这里..

class abc{ 
    public function foo1(){ 
     return 'YEAHHHHH'; 
    } 
} 

class xyz{ 
    private $qw; 
    public function foo2(){ 
     $obj = new abc(); 
     echo $this->qw = $obj->foo1(); 
    } 
} 

$obj = new xyz(); 
$obj->foo2(); 

Output: YEAHHHHH 
0
class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
     return $asdf; 
    } 
} 
class xyz{ 
    private qw = new abc(); 
    public function foo2(){ 
     echo $this->qw->foo1(); 
    } 
} 
  1. 拥有了第一个函数返回的东西
  2. 创建其他类中所需的类的实例(你应该考虑扩展)
  3. 调用必要的功能
  4. 从被调用函数回传返回的数据
相关问题