PHP開發者應該對 print_r() 不陌生,可以直接在瀏覽器中吐出Array中的結構,在Debug時邦很大的忙,但有一種情境是 SERVER 端被動接收 API 的回傳值,可能是一個POST,但我想了解這API回傳的值是否正確,於是寫了一個Log檔去紀錄,但Array直接寫入Log,會把Array強制轉型成字串,變成 “Array” 字串,還是無法知道Array裡面傳了什麼值,print_r()其實還有第二個參數,設定第二個參數,可以把Array 輸出的文字轉成字串,這樣我們就可以很容易地在Log中清楚地看見POST回傳值了。
範例:
$var = print_r($arr, true);
寫在Log忠誠這樣:
[2018-03-11 18:34:06]tset [2018-03-11 18:48:39]Array ( [CustomField1] => [CustomField2] => [CustomField3] => [CustomField4] => [MerchantID] => 2000132 [MerchantTradeNo] => 1520765300 [PaymentDate] => 2018/03/11 18:48:38 [PaymentType] => WebATM_BOT [PaymentTypeChargeFee] => 5 [RtnCode] => 1 [RtnMsg] => 交易成功 [SimulatePaid] => 0 [StoreID] => [TradeAmt] => 2000 [TradeDate] => 2018/03/11 18:48:19 [TradeNo] => 1803111848192948 [CheckMacValue] => AF663A711138967263DD625549D84BF684343BEC7527A2E76759133FF93F6A87 )
[……]