2013-02-19 68 views
3

我已經當我使用var_dump包含該指定PHP數組數據類型

"postage_cost" => $customer[total_shipping_cost] 

數組我得到

["postage_cost"]=> 
    string(5) "34.54" 

我如何可以聲明,這是一個浮動,而不是一個字符串時,製作陣列?我將這個數組發送到一個Web服務,恐怕可能會有一些數據類型混淆。 $ customer結果來自MySQL請求。

+3

在相關說明中,不要將貨幣值存儲在花車中,因爲它們固有的不精確性。 – deceze 2013-02-19 12:53:30

+0

你可能也想看看使用setter而不是數組的類。 – dethtron5000 2013-02-19 12:55:11

+0

@deceze你能解釋更多嗎? API的手冊說這個值應該是一個浮點數。什麼是不精確? – jimmy 2013-02-19 13:01:25

回答

6
"postage_cost" => (float) $customer['total_shipping_cost'] 

注意,我加引號的關鍵,因爲我99.999%肯定你沒有一個恆定的命名total_shipping_cost。 PHP是仁慈有關,但與激活錯誤報告,這將是一個公告:未定義的常量

+0

謝謝,解決了這個問題! (以及所有那些注意:undefined常量我正在...) – jimmy 2013-02-19 13:06:43

1
"postage_cost" => floatval($customer[total_shipping_cost]) 
2
"postage_cost" => $customer['total_shipping_cost'] + 0.0 

"postage_cost" => (float) $customer['total_shipping_cost'] 

要注意的是我周圍添加total_shipping_quotes單引號。這不是強制性的,但被認爲比原始文本更好;它也稍快一點。