2012-05-26 88 views
0

我想做一個簡單的設置腳本,基本上發送一個設置名稱和設置值到我的數據庫。gettype()返回基於變量類型的類型 - 如何根據內容獲取類型?

這實際上很簡單 - 設置和獲取它,需要很少的代碼和任務完成。

但我想數據以正確的類型返回。 每次都使用gettype()返回string - 這是合乎邏輯的,因爲從我的數據庫返回的內容是一個字符串。

對我的內容使用json_decode()可以達到此效果。這將返回基於內容的類型,並按預期工作。

但是我有更好的選擇嗎?

我正在考慮爲我的數據庫表分配一個類型,但這隻會增加設置和獲取數據的複雜性。

回答

1

您可以使用以下任何PHP函數來檢查,如果一個變量的特定變量類型的格式相匹配:

is_numeric,is_bool,is_null,is_float,is_int,IS_STRING,is_object,is_array

+0

這不是我正在尋找的東西 - 我正在尋找一些不會增加複雜性的東西(例如添加用於檢查和類型轉換的開關)。 – Repox

+0

確實如此,但它的運行效率要比運行json_decode()更有效。你也可以嘗試類似mysql_field_type()的方法,但這可能不如你想要的那樣高效。您可能必須對您處理基於數組索引返回的每個字段的方式進行硬編碼,以實現最高效率。 – netfire

+0

這個解決方案的一個問題是,字符串'true'不會用'is_bool(「true」)' - 而是'is_string(「true」)'來評估爲true。這使得這不適合我。 – Repox