PHP:如何从另一个函数访问类中函数的本地变量

PHP:如何从另一个函数访问类中函数的本地变量,php,function,variables,scope,Php,Function,Variables,Scope,所以我有一个php类,我有一个小麻烦了。想象一个如下所示的类 <?php class Foo { public function __construct() { $this->bar1(); } public function bar1() { $myvar = 'Booya!'; return 'Something different'; } public function bar2() { //get value

所以我有一个php类,我有一个小麻烦了。想象一个如下所示的类

<?php
class Foo
{
   public function __construct()
  {
     $this->bar1();
  }
  public function bar1()
  {
    $myvar = 'Booya!';

   return 'Something different';
  }
  public function bar2()
  {
    //get value of $myvar from bar1()
  }
}
$new_foo = new Foo();
$new_foo->bar2();
?>

问题是,,
如何从
bar1()
访问变量
$myvar
,请记住
bar1()
返回不同的值。

使用类变量,如:

$this->myvar = 'Booya!';

现在,变量myvar将存储在类中,并且可以在其他方法中请求或更改。。。代码旁边的注释解释了一切

<?php
class Foo
{
    private $myvar; //<---- Declare the variable !
    public function __construct()
    {
        $this->bar1();
    }
    public function bar1()
    {
        $this->myvar = 'Booya!'; //<---- Use this $this keyword

        //return 'Something different';//<--- Comment it.. Its not required !
    }
    public function bar2()
    {
        return $this->myvar; //<----- You need to add the return keyword
    }
}
$new_foo = new Foo();
echo $new_foo->bar2(); //"prints" Booya!


您应该首先将其设置为类变量,然后使用
$this

访问它。您不能直接访问它,只有在不更改bar1()返回值的情况下才能访问它 类变量,用于保存此数据的值 类内定义添加

private $saved_data;
在bar1()中:

在bar2()中


将其另存为类属性,例如
$this->myvar
private $saved_data;
$myvar = 'Booya!';
$this->saved_data = $myvar;
$myvar_from_bar1 = $this->saved_data