Webサービス部 Lesson14 / 1.5hour
Sep / 10.5hour
Total / 112hour
phpは動的型付けをする言語
いきなり何を言っているのか分からない、という方もいると思います。僕も当初は「???」でした。
簡潔にまとめると、phpはこちらで変数を定義する時に「これは整数型」としなくても、代入される値を勝手に判断して、
「これは整数型だね、こっちは文字列型だね!」と型を定義してくれる、ということです。
$type = 1 //これは整数型だね!
$type2 = '1' //これは文字列型だね!
var_dump($type);
//int(1)
var_dump($type2);
//string(1)"1"
上記にあるvar_dump();の結果の[int]や[string]が、いわゆる”型”と呼ばれるものとなります。
こんな感じでphpくんは気を利かせて、型を勝手に定義付けしてくれています。
それはそれで便利なのですが、時にはこちらの意図しない型に変換をしてしまうこともあります。
こちらの意図としては「文字列型」だったのに、phpは「整数型」としてしまった・・・。
となるとバグやエラーの原因ともなります。
それを防ぐためにも、phpには「型の変換」ということが可能です。
はじめに 世の中には、多数のプログラミング言語が存在しますが、ほとんどのプログラム言語において必須の言語機能として用意されているのが「変数」と、言語によって多少名称や扱い方が異なりますが「関数(サ…[…]
phpの型変換(キャスト)について
例えば、php側では文字列とされてしまうものを整数型だよ、と変換したい場合
$type = "1"; //本来であればこれは文字列型としてphpに処理される
$change = (int)$type; //$typeは整数型として処理してください!
var_dump($change) //int(1)
つまり、
(変換したい型)変数
とすることで、こちらの意図する型に変換することが出来ます。
変換できる型は下記の通りです。
- (int), (integer) – 整数へのキャスト
- (bool), (boolean) – 論理値へのキャスト
- (float), (double), (real) – float へのキャスト
- (string) – 文字列へのキャスト
- (array) – 配列へのキャスト
- (object) – オブジェクトへのキャスト
- (unset) – NULL へのキャスト (PHP 5)
引用:https://www.php.net/manual/ja/language.types.type-juggling.php
もう一つサンプルとして、整数型を配列型にキャストした場合↓
$type = 1;
$change = (array)$type;
var_dump($change) //array(1) { [0]=> int(1) }
キーが0、値が1として配列型に変換されました。
このように、時々phpはこちらが意図しない「型」に値を変換してしまうことがあります。
それをこちらの狙い通りの値にするにはキャストという手法で、型を変換することが可能です。
今後開発をする上でも、覚えておこうと思います。
学習は全てウェブカツ!!というプログラミングスクールで学んでいます。
大手スクール生徒や現役エンジニアが多数学び直している「実務レベル」に特化した「稼ぐ」ためのプログラミングスクール[…]