首頁 >後端開發 >php教程 >介面規格問題

介面規格問題

WBOY
WBOY原創
2016-08-18 09:16:011185瀏覽

介面回傳資料一般把整形與浮點型當成字串輸出出來了,你們有對這個類型進行處理嗎?
該怎麼處理,目前在用Laravel框架。

介面規格問題

我的想法是在每個Model那邊定義下資料類型,然後在Model輸出的時候統一處理,有什麼好的方法嗎。

回覆內容:

介面回傳資料一般把整形與浮點型當成字串輸出出來了,你們有對這個類型進行處理嗎?
該怎麼處理,目前在用Laravel框架。

介面規格問題

我的想法是在每個Model那邊定義下資料類型,然後在Model輸出的時候統一處理,有什麼好的方法嗎。

PHP 是弱型別語言,所以出現這種情況比較常見。
一般如果跟 js 交互,或是其他弱型別語言交互,都不會有什麼問題。
如果跟 Ios、Android 等強類型的語言就會出現一些問題

1、寫個 api 統一處理函數,在輸出前統一處理一下,是 int 就用intval 轉一下,是 null 的就是 null,是空字串,就是 "" ,這在強型別中需要注意的。
2、互動一方,Ios、Android 等,最好也做類型驗證,可以做類型轉化,做容錯,不要介面回傳的類型不對,程式就崩了。

兩方面都最好處理。

這個跟框架無關,PHP是弱型的,所以回傳JSON的時候資料格式很不規範,我目前回傳JSON資料的介面都是在最外面手動格式化一下

<code>strval(xxx) //格式化为字符串
intval(xxx) //格式化为整形数字
floatval(xxx) //格式化为浮点型数字
boolval(xxx) //格式化为浮点型</code>

謝謝邀請,樓上說的很清晰了,php弱類型,你可以根據你要接受的數據,或者返回給你客戶端的數據單獨用程序做下處理,保證數據的完整性準確性。你可以定一個類別或方法處理你說的浮點,整型等數據,總之保證介面安全性資料正確性就好了

首先說我的結果。
不會轉換成字串。
是不是你資料原本就是字串。

我的php版本: 5.5.34
Laravel Framework version: 5.2.22

<code><?php

namespace App\Http\Controllers;

class PingController extends Controller
{

    public function ping()
    {
        $a = [1.1, 2];
        return json_encode($a);

        return 'ping is ok';
    }
}</code>

順便一提,我認為處理的時候應該是在controller返回的時候去統一處理。

介面規格問題

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn