オルタナティブ・ブログ > 吉政忠志のベンチャービジネス千里眼 >

IT業界でベンチャービジネスの支援をしている執筆者が日々の活動ログと感じたことを、徒然なるままに書き綴っていきます。

上級PHPコラム『Standard PHP Library(SPL) データ構造編』(PHP上級試験対策)

»

PHP技術者認定機構の吉政でございます。

PHP技術者認定機構の認定スクールであるヒューマンリソシアが

私が企画した、古庄親方のPHPコラム『Standard PHP Library(SPL) データ構造編』を公開しています。

今日が今年の最終営業日という方も多いのではないでしょうか?

今年の仕事は今年のうちに!私も頑張りますwww

仕事の合間にPHPの上級テクニックを学習しませんか?ということで、上級PHPテクニックコラムをご紹介します。

###
SPLに存在する「データ構造用のクラス」について学んでいきましょう。
まずは、PHPに寄らない、一般的な概念としての「データ構造」を整理してみます。

色々と異論もあろうかと思いますが、とりあえず以下程度を想起してみましょう。

    配列
    スタック
    キュー
    連想配列
    連結リスト(双方向リスト)
    循環リスト(双方向循環リスト)
    木構造
    グラフ

なお片方向系(片方向リスト、片方向循環リスト)は、メモリ等がよっぽどタイトでないかぎりは最近「双方向」で代用されることが多いかと思うので、一端オミットいたします。

さて。
まずPHPは「配列を、言語構造としてもっています」が、実際には中の実装は「ハッシュによる連想配列+リスト」になります。
ですので、例えば通常の数字の添え字配列を「$any_array[5]」なんてアクセスをしていて、例えばこれがC言語だと「any_arrayの型をチェックしてポインタ演算をして+5の位置にある情報」になるのですが、PHPの場合は連想配列なので「5という値をhashしたところにある情報」になります。
また一方で「+リスト」なので、連想配列にもかかわらず「順番を保持している」という、他言語の連想配列になれていると「…なにごと?」と思うような状況を生み出します。
(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/287/

Comment(0)