[英]Strange behavior of PHP in a Symfony2 repository
我的代码发生了一些特别的事情。
这是我的存储库功能:
public function getPlace($id, $lang = 'fr') {
$this->setDefaultLocale($lang);
// ... etc, etc
}
我这样称呼这个功能:
$place = $myRepo->getPlace($id, 'en');
在我的存储库中,本地仍然是“ fr”。
当我打印$ lang变量时,显示“ en”。
如果您以静态方式使用此代码,则效果很好:
public function getPlace($id, $lang = 'fr') {
$this->setDefaultLocale('en');
// ... etc, etc
}
我不明白为什么...我尝试了以下基本操作:
public function getPlace($id, $lang = 'fr') { //(NOT WORKING)
$t = ($lang == 'fr') ? 'fr' : 'en';
$this->setDefaultLocale($t);
// ... etc, etc
}
public function getPlace($id, $lang = 'fr') { // (WORKING)
$t = 'en';
$this->setDefaultLocale($t);
// ... etc, etc
}
我不知道...
非常感谢,
加布里埃尔
经过进一步研究,我发现了问题所在。
我两次调用此存储库函数。 第一个保留法语,然后第二个保留defaultLocale'fr','en'保持不变...
所以,这是另一个问题:您知道为什么,当我一次设置存储库的defaultLocale时,无法再次更改它吗?
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.