所以我有一个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();
?>
问题是,
如何从$myvar
访问变量bar1()
,请注意bar1()
会返回不同的内容。
答案 0 :(得分:2)
你会做这样的事情......所有事情都是通过代码旁边的评论来解释的。
<?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!
答案 1 :(得分:2)
<?php
class Foo
{
var $myvar;
public function __construct()
{
$this->bar1();
}
public function bar1()
{
$this->myvar = 'Booya!';
return 'Something different';
}
public function bar2()
{
//get value of $myvar from bar1()
echo $this->myvar;
}
}
$new_foo = new Foo();
$new_foo->bar2();
?>
您应首先将其设置为类变量,然后使用$this
答案 2 :(得分:2)
你不能直接这样做,只有你可以不改变bar1()返回值是创建一个 用于保存此数据值的类变量 在类定义中添加
private $saved_data;
在bar1()中:
$myvar = 'Booya!';
$this->saved_data = $myvar;
在bar2()
$myvar_from_bar1 = $this->saved_data
答案 3 :(得分:0)
使用类变量,如:
$this->myvar = 'Booya!';
现在变量myvar将存储在类中,并且可以在其他方法中请求或更改。