web関連

【PHP】違う型同士の計算と型変換

2020/09/12

phpのエラー修正で小数はfloat(double)型って呼ばれるの知って、計算とか型変換について気になったので調べた

型チェック方法

gettype関数を使って判別できる

$float = 1.23;
$int = 1;
$str = "1";
echo gettype($float);// double
echo gettype($int);// integer
echo gettype($str);// string

何故か少数点の型は「float」じゃなくて「double」って出力されるみたい

計算について

さっきの型チェックした変数を足してみる

$float = 1.23;
$int = 1;
$str = "1";
$mix = $float + $int + $str;
echo $mix;//3.23
echo gettype($mix);// double

それぞれ違う型で計算すると中身は全部数字だから単純に足されるね

$str = "text";って文字列を入れて計算し直すとエラー吐くわ

おまけ:文字列として繋げる場合の書き方

文字列としてつなげるなら
.(ピリオド)を使う

$float = 1.23;
$int = 1;
$str = "text";
$mix = $float . $int . $str;
echo $mix;//1.231text
javascriptばっかりやってると忘れるからメモ

型変換

キャスト(型変換)と言って頭に(string)つけたりすれば型を変換できるみたい

$float = (int)1.23;
$int = (string)1;
$str = (array)"text";
echo gettype($float);// integer
echo gettype($int);// string
echo gettype($str);// array

キャスト以外にstrval()intval()って関数を用いる方法でも変換できるみたい

string型に変換するときはシングル/ダブルクォーテーションで変数囲んだりするだけでも行けるみたい

$float = 1.23;
echo gettype('$float');// string

便利

ACFのgooglemapの座標を変数に入れてるところがエラーになってたけど、そもそもgooglemapの設定をしていないのが原因だった
PHPの型について調べるきっかけになったし良しとしましょう