「2.4.11キャスト演算子」からのメモ。
他の言語と同じように基本型であれば(int)や(string)を使うことで型を明示的に変換することができます。
一つだけ面白いなと思ったのはObjectをArrayに変換することができる点です。(逆もできます)
<?php class Person { public $name = "Fred"; protected $age = 35; private $sex = "male"; public function walk(){ echo "teku-teku"; } } $hoge = new Person; print_r($hoge); $foo = (array)$hoge; print_r($foo); echo $foo["name"]."\n"; echo $foo["*age"]."\n"; echo $foo["Personsex"]."\n"; ?>
Person Object ( [name] => Fred [age:protected] => 35 [sex:Person:private] => male ) Array ( [name] => Fred [*age] => 35 [Personsex] => male ) Fred PHP Notice: Undefined index: *age in /home/h13i32maru/php/2.4.11_cast.php on line 18 PHP Notice: Undefined index: Personsex in /home/h13i32maru/php/2.4.11_cast.php on line 19
publicな変数にはアクセスできるのですが、protectedとprivateな変数にはなぜかアクセスできません。PHPのサイトをみてもあまり詳しく書いてないので、わからないです。どなたか原因をしっているかたがいましたら教えてもらえると助かります。
PHP: 配列 - Manual