将在一个函数中创建的PHP变量传递给另一个

JCH*_*E11 5 php variables wordpress function

我正在使用wordpress和woocommerce(电子商务插件)来定制购物车.在我的functions.php中,我将数据存储在变量中,如下所示:

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );

function add_custom_price( $cart_object ) {
    foreach ( $cart_object->cart_contents as $key => $value ) {
        $newVar = $value['data']->price;
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要能够$newVar在不同的功能中使用,以便我可以在页面的不同区域回显结果.例如,如果我有以下功能,我将如何$newVar在其中使用?

add_action( 'another_area', 'function_name' );

function function_name() {
    echo $newVar;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

put*_*nde 8

您可以将变量设为全局变量:

function add_custom_price( $cart_object ) {
    global $newVar;
    foreach ( $cart_object->cart_contents as $key => $value ) {
        $newVar = $value['data']->price;
    }
}

function function_name() {
    global $newVar;
    echo $newVar;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果$newVar已在全球范围内可用,您可以执行以下操作:

function function_name($newVar) {
    echo $newVar;
}

// Add the hook
add_action( 'another_area', 'function_name' );

// Trigger the hook with the $newVar;
do_action('another_area', $newVar);
Run Code Online (Sandbox Code Playgroud)

  • 一个简单的问题......为什么声明$ newVar全局,是'全局'一个坏习惯?应该是$ newVar一个数组?是一个真正的问题,以澄清我的想法 (3认同)