ホーム > PHPの文法 > 4 演算子 > PHP のキャスト=演算子における型変換(ジャグリング)
PHPリファレンス

UPDATE:2019年10月16日

PHP のキャスト=演算子における型変換(ジャグリング)

PHP のキャスト=演算子における型変換(ジャグリング) | wepicks!
PHP4 PHP5 PHP7

1 Minute Note

  • 型のジャグリングとは規則によるデータ型の自動(暗黙の)変換
  • データ型の変換をキャストという
  • 型変換はオペランド自体の型が変更されるのではなく、オペランドがどのように評価されるかの変換
  • 文字列が数値として評価される場合
    文字列の先頭に整数値や浮動小数点数値がある場合、その数値として評価される
    文字列の先頭に数値がない場合は0と評価される
    文字列に「.(ドット)」や「e や E」がある場合は浮動小数点数値として評価される
PHPには自動でデータ型を変換する機能があります。データ型の自動変換を型のジャグリングと言います。


型のジャグリング=データ型の自動(暗黙の)変換

POINT

  • 型のジャグリングとは規則によるデータ型の自動(暗黙の)変換
  • データ型の変換をキャストという
  • 型変換はオペランド自体の型が変更されるのではなく、オペランドがどのように評価されるかの変換

型のジャグリングとは規則に応じて自動的に行われるデータ型の変換のことです。PHPは必要に応じてデータ型を自動的に変換します。データ型の変換をキャストといいます。

殆どの演算子はオペランド(値あるいは式)に対して前提条件があります。例えば、+ や – などの算術演算子のニ項演算子の場合、2つのオペランドが同じデータ型であることが前提条件になっています。そのためPHPでは前提条件に則るためにデータ型を自動的に変換します。

オペランドとは演算子の対象となる値のことです。

+ や – などの算術演算子の場合、左辺オペランドと右辺オペランドのデータ型は同じ型であることが前提条件。

型のジャグリングには規則があります。PHPが行うジャグリングがどのような挙動か理解していないと、場合によっては意図しない結果が発生してしまうことがあります。

算術演算子の場合の型のジャグリング規則

1番目のオペランド型2番目のオペランド型キャスト(変換)の規則
整数浮動小数点整数→浮動小数点
整数文字列文字列→数値
変換後の数値が浮動小数点の場合は、整数→浮動小数点
浮動小数点文字列文字列→浮動小数点

型のジャグリング 整数 と 浮動小数点 の場合

結果は

22.5
double

となります。

整数 10 は浮動小数点として計算されます。
整数 → 浮動小数点 型のジャグリングが行われています。

型のジャグリング 整数 と 文字列 の場合

結果は

20
integer

となります。

文字列 “10”(「"(ダブルクォート)」で囲まれた 10 は通常文字列の扱い) は整数として計算されます。
文字列 → 整数 型のジャグリングが行われています。

文字列が数値として評価される場合

 演算子のオペランドにおいて、数値が必要とされる場所で文字列が使用された場合、文字列は数値として評価されます。

POINT

  • 文字列が数値として評価される場合
    文字列の先頭に整数値や浮動小数点数値がある場合、その数値として評価される
    文字列の先頭に数値がない場合は0と評価される
    文字列に「.(ドット)」や「e や E」がある場合は浮動小数点数値として評価される

結果は

1 integer
5 integer
2.6 double
9 integer

となります。

サンプルコード

– サンプル Click Here ! –

実行結果
型のジャグリング 整数と浮動小数点
22.5
double

型のジャグリング 整数と文字列
20
integer

型のジャグリング 浮動小数点と文字列
22.7
double

文字列が数値として評価される
1 integer
5 integer
2.6 double
9 integer

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2017年3月21日
最終更新日:2019年10月16日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-cast/trackback/

page top