PHPは動的型付け言語
PHPはCやJavaみたく実行前に変数の型を決定できる(しなければならない)言語ではなく、
実行時にしか変数の型が決まらない言語です。つまり、必ず変数の型を前もって
決める必要がないということです。
PHPでは 文字列同士の比較であっても、値が数値形式であれ ば数値として比較します。
ただ、型を意識しなくても良いから敷居が低いぶん、他の言語にはないPHP特有の落とし穴が
存在するようです。
設計上の型は数値なのにPHPでの型は文字列だった、とかは珍しくありません。
PHPの型
- boolean
- integer
- float
- array
- null
など
キャスト
関数を呼び出すときや、演算子を使うときに、キャストされます。
PHPにはこういう暗黙の型キャストが
行われたりします。そして、キャストは一時的なもので型そのものが変更されない
ということを留意すべきです。
boolean にキャストすると false になるもの
- null
- "" 空文字列
- "0" 長さ1のstring
- 0 integer
- 0.0 float
- array() 空の配列
ほかの値はすべて true になります。
boolean から integer または float にキャスト
- false 0
- true 1
- string からのキャストは、文字列の先頭から整数または浮動小数点数とみなせる文字までを数値として解釈します。
文字列へのキャスト
- boolean からのキャストは false が ""、true が "1" となります。
- integer からのキャストは整数の全桁がそのまま文字列になります。
- float からのキャストは指数表現になる場合と、integer 同様に数字だけの場合と 2 種類あります。
isset
引数がnullか、未定義のときにfalseを返します。
!is_null、!==nullと同じです。
array_key_exists
当該配列の値が未定義なのかを判定します(つまりnullか未定義かを
調べることができます)
まあ知っておくとよいかんじです。
真偽判定については、僕のエントリーをご参考下さい。
=== と == の違い - by shigemk2
- 作者: 赤松祐希,紀平拓男,牧大輔,西林孝,中島聡,中島拓,角田直行,はまちや2,舘野祐一,きしだなおき,和田裕介,伊藤直也,大沢和宏,塙与志夫,増井俊之,ミック,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 14人 クリック: 180回
- この商品を含むブログ (40件) を見る