2016-10-01 43 views
1

我正在使用允许您设置全球货币的插件。但是,我需要根据页面更改货币。如何覆盖特定页面上的全局变量?

有什么方法可以覆盖特定页面上的全局变量吗?

我需要更改的变量是$货币。这是我迄今为止基于what I've read here所尝试的,但我对PHP不太熟悉,所以我不确定我有多接近解决方案。

function change_currency() { 
global $currency; 
if(is_page (18)) { 
$currency = "EUR"; 
}} 

在此先感谢您。

+0

你使用WordPress,你已经使用'is_page'功能,或者您有定义它? – SAM

+0

是的,我使用Wordpress。在这种情况下页面ID是18. –

+0

所以你的代码是好的变量是全局的,功能是好的但我建议在你的函数的参数中使用'$货币'为了功能! – SAM

回答

0

如果您需要在整个页面上使$ currency变为global,那么<?php global $currency; ?>将在页面顶部声明。否则,如果你需要一个函数内部则使用此功能:

change_currency() 
{ 
    global $currency; 
} 
0

你可以通过使用关键字的变量导入到你的方法,并返回其新的价值可能做这样的事情。

function changeCurrency() use ($currency) 
{ 
    ..... 
    return $currency; 
} 

$currency = changeCurrency(); 

虽然这是程序导向。我更好的解决办法是建议你创建什么项目对象的持有和通过对象改变这种货币的方法:

class Item 
{ 
    private $currency; 
    public function changeCurrency(
    ) { 
     ..... 
     $this->currency = ....