Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SplPriorityQueue::key()メソッドの使い方

keyメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

keyメソッドは、SplPriorityQueueオブジェクトを反復処理する際に、現在指している要素のキーを取得するメソッドです。

SplPriorityQueueは、要素をその優先度に基づいて管理する特殊なキューであり、最も高い優先度を持つ要素から順に取り出されるデータ構造です。このクラスはPHPのIteratorインターフェースを実装しており、foreachループなどを用いてキュー内の要素を一つずつ順に処理することが可能です。

Iteratorインターフェースは、current()key()next()rewind()valid()といった一連のメソッドの実装を要求します。keyメソッドは、このインターフェースの一部として、イテレータが現在位置している要素に対応する「キー」を返します。

しかし、SplPriorityQueueにおけるkeyメソッドが返す値は、一般的な配列のインデックスや連想配列のキーとは異なり、要素のデータや優先度を直接示すものではありません。多くの場合、このキーはキューに要素が追加された内部的な順序を表す数値カウンターのようなものです。この値は、要素の優先度や内容を特定する目的で通常使用されることはなく、イテレータの内部的な位置を示す識別子として機能します。

SplPriorityQueueの要素の実際のデータはcurrent()メソッドで、その優先度はpriority()メソッドでそれぞれ取得できます。keyメソッドは、主にイテレータとしての振る舞いを完結させるために存在し、特定のデバッグ時などを除いて、SplPriorityQueueの操作において直接的に利用される機会は少ないでしょう。

構文(syntax)

1<?php
2$priorityQueue = new SplPriorityQueue();
3$priorityQueue->insert('データ1', 10);
4$priorityQueue->insert('データ2', 20); // 最も優先度の高い要素
5$priorityQueue->insert('データ3', 5);
6
7$priorityQueue->rewind(); // イテレータを最も優先度の高い要素に設定
8
9echo $priorityQueue->key(); // 現在の要素のキー(内部インデックス)を出力

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

SplPriorityQueue::key() は、現在キューの先頭にある要素のキーを整数型で返します。

関連コンテンツ