我有一个函数,通过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;
}
}
}
我是新手,所以任何帮助都会受到赞赏。
更正了拼写错误,生产代码中的变量名称是正确的。
答案 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
}
避免使用global
。 global
是邪恶的。