上級PHPコラム『Standard PHP Library(SPL)について』(PHP上級試験対策)
PHP技術者認定機構の吉政でございます。
PHP技術者認定機構の認定スクールであるヒューマンリソシアが
私が企画した、古庄親方のPHPコラム『Standard PHP Library(SPL)について』を公開しています。
今年も営業日であと1日とか2日になりました。今年の冬休みはカレンダー上、休みが多くなりました。前後に有休をつけると、かなり長期の休暇になりますね。ゆっくり休まれるのもいいですが、休みの中に勉強を入れてメリハリをつけるのはいかがでしょうか?
勉強をやめた瞬間から陳腐化は始まります。常に勉強していくことで、進化していくと信じています。PHPの学習を使用!という方は是非以下のコラムをご覧ください。
###
SPLは、読んで文字の通り「PHP用の標準的なライブラリ」です。もう少し正確に書くと「PHP用の標準的な”クラス”ライブラリ」になります(厳密には一部例外がありますが、ほとんどがクラスになります)。
PHPの標準関数は当然ながら「関数」なのですが、SPLは「クラス」の形で提供されているのが最大の違いですね。
SPLはPHP 5.0.0以降「デフォルトでインストールされている」ほか、PHP 5.3.0以降は「無効化できない」エクステンションになりますので、よほど何か無い限りは「普通使える」と思ってよいでしょう。
ただ、PHPの常で「バージョンによってエクステンションが増えている」ので、逆の見方をすると「古いバージョンではまだ実装されていないエクステンション」もあります。実際に使う時は、きちんとバージョン情報を確認しておくとよいでしょう。
大まかに、SPLは以下のカテゴリに分けられます。今回はまず、各カテゴリについて大まかに把握をしておきましょう。
まず「データ構造」というカテゴリがあります。
アルゴリズムと併用して学ぶ「一般的なデータ構造」である、双方向リンクリスト、キュー、スタック、ヒープなどを扱うことができるクラスがここに属します。
次に「イテレータ」というカテゴリがあります。
このカテゴリのクラスを継承して実装すると、「foreachを使ってオブジェクトを配列のように処理できる」など、インタフェース的にわかりやすい実装をすることができます。
お次は「インタフェース」カテゴリです。
これは、PHPの言語機能や関数とうまいこと渡りを付けてくれるためのものですね。
例えば、Countable インターフェイスを継承したクラスは、PHPの標準関数であるcount()関数を使って「要素数」を取得することができます。
「何をもって要素数とするか」は実装次第ですね。
(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/285/