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

Set and use variable outside of function in PHP

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

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

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

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;
        }
    }
}

我是新手,非常感谢您的帮助。

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

使用下面的代码:

$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;
        }
    }
}

您可以 return 变量并像 -

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

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

$status = foo();

然后检查。

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

看起来您想从该函数 return 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 是邪恶的。

在全局范围内的函数外声明$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"