我只使用一维数组,没什么特别的
$invalid_custom_transaction_ids = array();
方法1:
foreach($result as $row) {
if($row['TransactionID'] == $paypal_transaction_id) {
error_log("[DIE]1");
die();
}
error_log("[PUSHING]".$row['CustomTransID']);
array_push($invalid_custom_transaction_ids, $row['CustomTransID']);
}
方法2:
foreach($result as $row) {
if($row['TransactionID'] == $paypal_transaction_id) {
error_log("[DIE]1");
die();
}
error_log("[PUSHING]".$row['CustomTransID']);
$invalid_custom_transaction_ids[] = $row['CustomTransID'];
}
以下内容将打印到调试日志中,显示我尝试添加到数组中的值()
[03-Nov-2014 08:48:25 America / Los_Angeles] [PUSHING] Ux837Yn3rK3
当我尝试使用以下代码将数组打印到debug_log时
error_log(var_dump($invalid_custom_transaction_ids));
它返回空白,我也试过这个
error_log(array_values($invalid_custom_transaction_ids));
输出到error_log文件如下所示:
[03-Nov-2014 08:48:25 America / Los_Angeles]
然后打印以下错误
[03-Nov-2014 08:48:25 America / Los_Angeles] PHP警告:在第195行的/path/to/script.php中为foreach()提供的参数无效
第195行的代码如下:
function uniqueTransactionCheck() {
error_log("[UTC]1");
error_log(var_dump($invalid_custom_transaction_ids));
error_log("Is array: " . is_array($invalid_custom_transaction_ids));
foreach($invalid_custom_transaction_ids as $invalid) {
if($custom_transaction_id == $invalid) {
$custom_transaction_id = generateTransactionID();
uniqueTransactionCheck();
}
}
}
这笔交易是什么?我根本不理解这一点,我一直在努力尝试做到这一点,并且通过不同的纪录片和方法进行改组。我非常惊讶。
-snip -
答案 0 :(得分:2)
你的错误是var_dump
没有返回字符串。它打印到标准输出。当您编写error_log(var_dump(...))
时,它不会将var_dump输出写入错误日志。
在我看来,变量的类型不是您期望的数组。你能打印出is_array($invalid_custom_transaction_ids)
的结果吗?
编辑:
好的,你的问题是在uniqueTransactionCheck()
中你引用了一个名为$invalid_custom_transaction_ids
的变量。
但是,uniqueTransactionCheck()
范围内不存在该变量。您可能希望将变量作为参数传递。如果您在uniqueTransactionCheck()
中运行以下代码,则会在日志中看到错误:
error_log(isset($invalid_custom_transaction_ids))