【php】どうでもいいキャスト変換実験メモ

先週会社で型変換的なお勉強をしたのですが、時間的にも聞くに聞けなかったのでレッツ実験。

実験項目

  1. 型変換した変数のその後も変換されたまま?
  2. 型変換した変数を別変数に代入した場合、代入された方の型はどうなる?

こんなしょうもない実験を、とりあえずメモしただけのつまらない記事です。

  • 実験コード
<?php

$hoge1 = 1;
$hoge2 = '2';
$hoge3 = "3";

var_dump($hoge1);
var_dump($hoge2);
var_dump($hoge3);

echo "\n---1↓----\n";

(string)$hoge1;
(int)$hoge2;
(array)$hoge3;

var_dump($hoge1);
var_dump($hoge2);
var_dump($hoge3);

echo "\n---2↓----\n";

$huga1 = (string)$hoge1;
$huga2 = (int)$hoge2;
$huga3 = (array)$hoge3;

var_dump($huga1);
var_dump($huga2);
var_dump($huga3);

echo "\n---おまけ↓----\n";

$hoge = 1234567;

var_dump((array)$hoge);
var_dump((array)(string)$hoge);
var_dump((string)(array)$hoge);
  • 結果
int(1)
string(1) "2"
string(1) "3"

---1↓----
int(1)
string(1) "2"
string(1) "3"

---2↓----
string(1) "1"
int(2)
array(1) {
  [0]=>
  string(1) "3"
}

---おまけ↓----
array(1) {
  [0]=>
  int(1234567)
}
array(1) {
  [0]=>
  string(7) "1234567"
}
string(5) "Array"

と、こんな感じでした。
型変換後の値は戻り値扱いなのですね。
しかし「(array)(string)$hoge」とか、普段やる機会まったくないので、ちょっと楽しかったw