在PHP中设置和使用函数外部的变量

时间:2015-05-20 04:03:44

标签: php wordpress php-5.3 gravity-forms-plugin

我有一个函数,通过SOAP API将销售信息传递给第三方服务,并返回一个包含结果的数组。

我需要从该数组中获取一个特定的键,set是一个变量,或者在其他代码中以某种方式在该函数之外使用它。

我在函数中声明变量,如下所示:

function foo { 
...code to sell product through API...

global $status;
$status = $checkoutShoppingCartRequest['Result']['Status'];
}

以下是我需要使用此变量的语句,每次都失败:

if ( $status !== "Success") {
    $validation_result['is_valid'] = false;

    foreach( $form['fields'] as &$field ) {
        if ( $field->id == '1' ) {
            $field->failed_validation = true;
            $field->validation_message = 'Your credit card could not be processed.';
            break;
        }
    }
}

我是新手,所以任何帮助都会受到赞赏。

更正了拼写错误,生产代码中的变量名称是正确的。

4 个答案:

答案 0 :(得分:5)

在全局范围内的函数外声明$status

$status = ''; // Global scope

function foo() {
    global $status; // Access the global $status var
    $status = 'status set in function';
}

foo();
print_r($status); // Outputs "status set in funciton"

答案 1 :(得分:1)

使用以下代码:

$mbStatus更改为$status

if ( $status!== "Success") {
    $validation_result['is_valid'] = false;

    foreach( $form['fields'] as &$field ) {
        if ( $field->id == '1' ) {
            $field->failed_validation = true;
            $field->validation_message = 'Your credit card could not be processed.';
            break;
        }
    }
}

答案 2 :(得分:1)

您可以返回变量并像 -

一样使用它
function foo() { 
...code to sell product through API...

...
$status = $checkoutShoppingCartRequest['Result']['Status'];
return $status;
}

$status = foo();

然后检查。

if ($status !== 'Success') { .... }

答案 3 :(得分:1)

您希望从该功能返回status并在外面使用它。

function foo() { 
    //...code to sell product through API...
    return $checkoutShoppingCartRequest['Result']['Status'];
}

$status = foo();
if ( $status !== "Success") {
    $validation_result['is_valid'] = false;

    //for loop here
}

避免使用globalglobal是邪恶的。