今回はその中で、scalar値かどうかの判別について考えたいと思います。
まず、取得したい値と弾きたい値の仕様について考えます。
取得したい値
- integer
- float
- string
- boolean
弾きたい値
- NULL
- array
- object
- resouce
というわけで、実装した関数はこうなりました。
サンプルコード
実行結果
NULL : string(0) ""
"" : string(0) ""
"a" : string(1) "a"
0 : int(0)
1 : int(1)
+1 : int(1)
-1 : int(-1)
0x0A : int(10)
012 : int(10)
0.1 : float(0.1)
1e3 : float(1000)
1e-3 : float(0.001)
array("") : string(0) ""
array("a") : string(0) ""
array(array("a")) : string(0) ""
TRUE : bool(true)
FALSE : bool(false)
object : string(0) ""
fopen : string(0) ""
上記の通り、特に問題なさそうです。
スカラー値を取得したいときはこの関数を使用していきたいと思います。
0 件のコメント:
コメントを投稿