【发布时间】:2017-08-01 11:02:11
【问题描述】:
这是代码(不包括命名空间、路由):
class OneController extends Controller{
public $variable = "whatever";
public function changeVariableAction(){
$this->variable = "whenever";
// any code...
$this->redirectToRoute("class_two_route_name");
}
}
use AppBundle\Controller\OneController;
class Two{
public function otherFunctionAction(){
$reference = new One();
return new Response($reference->variable);
}
}
为什么我看到的是“whatever”而不是“whenever”?我知道执行changeVariableAction()的代码中没有一行,但是当sb进入class One中与此操作匹配的路由时正在执行它???
编辑:
当我在 SF3 之外编写方案时,我很好。
class One{
public $variable = "whatever";
public function changeVariable(){
$this->variable = "whenever";
}
}
class Two{
public function otherFunction(){
$reference = new One();
$reference->changeVariable();
echo $reference->variable;
}
}
$reference2 = new Two();
$reference2->otherFunction();
【问题讨论】:
-
您创建了一个
One的新实例。任何新实例都将$variable设置为whatever。你的代码是这样写的。