Standard PHP Library(SPL) イテレータ インスタンス編
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「Standard PHP Library(SPL) イテレータ インスタンス編」を公開しました
PHPer上級者になるために知っておきたいこと
vol.11 ‐ 『Standard PHP Library(SPL) イテレータ インスタンス編』
投稿日時:2013/06/11 04:06
カテゴリ: PHPer上級者になるために知っておきたいこと
前回はコードを提示してみましたので、今回はそのコードの中身について見ていきたいと思います。
ここで普通に思うのは「foreachって配列に対して反復処理をする構文じゃないの?」という疑問です。
至極最もな疑問なのですが、PHPのマニュアルには以下のように書かれています。
http://www.php.net/manual/ja/control-structures.foreach.php
foreach は、配列を反復処理するための便利な方法です。 foreach が使えるのは配列とオブジェクトだけであり、 別のデータ型や初期化前の変数に対して使うとエラーになります。
「foreach が使えるのは配列とオブジェクトだけ」はいちょっとびっくりするポイントですね。
さて。お次は「もう少しびっくりする」コードを見てみましょう。
<?php
//
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';
protected $var4 = 'value 4';
private $var5 = 'value 5';
}
//
$class = new MyClass();
foreach($class as $key => $value) {
print "$key => $value\n";
}
結果は以下の通り。
この続きは以下をご覧ください
http://resocia.jp/column/294/
ソーシャルもやってます!