PHP影响函数变量的最佳方法

时间:2010-11-03 14:28:48

标签: php

我正在玩钩子函数,钩子会调用另一个对象的方法,在返回之前更改父函数中$ price的最佳方法是什么?

function _product_price ($price,$taxable = true)
{
    $shop->_hook('PRODUCT_PRICE_BEFORE');
    $price = 100.00;
    $shop->_hook('PRODUCT_PRICE_AFTER');
    return number_format($price,2);
}

谢谢大家,这是一个合适的解决方案吗?

function _product_price ($price,$taxable = true)
{
    global $shop;
    $shop->_hook('PRODUCT_PRICE_BEFORE');
    $price = 100.00;
    $shop->passedArgs['price'] = $price;
    $shop->_hook('PRODUCT_PRICE_AFTER');
    return number_format($shop->passedArgs['price'],2);
}
function _hook ()
{
    global $shop;
    $shop->passedArgs['price'] = 23.00;
    return;
}

2 个答案:

答案 0 :(得分:2)

由于您可能想要为钩子注册任意方法,请查看

答案 1 :(得分:1)

我将变量传递给了这一点:

  • 作为引用数组,(array('price' => &$price);会在稍后的函数中对$var['price']变量进行任何更改/更深入地反映在'范围内'$price中。
  • 将变量设置为对象属性,并将当前可观察对象作为参数传递。