ホームページ > バックエンド開発 > PHPチュートリアル > PHP iteratorの内部実行処理の詳細説明_PHPチュートリアル

PHP iteratorの内部実行処理の詳細説明_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:25:18
オリジナル
928 人が閲覧しました

复制代码代码如下:

class myIteratorimplements Iterator {
private $position = 0;
private $array = array(
"first_element",
"first_element" 、
"last_element",
) ; 

パブリック関数 __construct() {
$this->position = 0;
}

function rewind() {
var_dump(__METHOD__);
$this->position = 0;
}

function current() {
var_dump(__METHOD__);
return $this->array[$this->position];
}

function key() {
var_dump(__METHOD__);
return $this->position;
}

function next() {
var_dump(__METHOD__);
++$this->position;
}

function valid() {
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}

$it = 新しい myIterator;

foreach($it as $key => $value) {
echo '输出键值:';
var_dump($key, $value);
//echo $key;
echo "n";
}


程序运行输出:
复制代代码如下:

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator:: current"
string(15) "myIterator::key"
输出键值:int(0)
string(13) "first_element"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
输出键值:int (1)
文字列(14) "第二要素"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
输出键值:int (2)
文字列(12) "last_element"

string(16) "myIterator::next"
string(17) "myIterator::valid"


一般的な代器内部に必要な次のメソッド:
Iterator::current — 現在の要素を返す 返当前元素
Iterator ::key — 現在の要素のキーを返す 返当前元素の键
Iterator::next — 次の要素に進む 移向下一元素
Iterator::rewind — Iterator を最初の要素まで巻き戻す要素
Iterator::valid — 現在位置が有効かどうかをチェックします。

代码如下:

/**
* @author シンプルモダンマジック http://www.nowmagic.net
*/
class MyIterator は Iterator を実装します
{
private $var = array(); publicパブリック関数__construct($ array)

publicパブリック関数Rewind(){echo "最初の要素n"を巻き戻します F Pualic 関数は () {
$ var = Current ($ this- & gt; var);
echo "current element: $ varn";
Return $ var; 「 through ’s’ ’ through‐‐‐‐ ‐‐‐‐‐ ‐ }
‐ ‐ ‐ public function key() {
アウト アウト スルー アウト スルー スルー オフ‐ ‐‐‐‐‐‐ ‐ ‐ ‐ ‐ ‐ F Pualic 関数 value () {

$ var = $ this-& gt;

echo "チェック: {$ var} n";
$values = array(1,2,3);
$it = 新しい MyIterator($values);
(Foreach ($ it as $ k = & gt; $ v) {

Print "at this time-key $ k: value $ vnn";

コードは次のとおりです:


最初の要素を巻き戻す
現在の要素: 1

有効性のチェック: 1

現在の要素: 1
現在の要素のキー: 0
現時点でのキーと値のペア -- キー 0: 値 1

次の要素に移動: 2

現在の要素: 2

有効性のチェック: 1
現在の要素: 2
現在の要素のキー: 1
この時点のキーと値のペア -- キー 1: 値 2

次の要素に移動: 3

現在の要素: 3
有効性のチェック: 1
現在の要素: 3
現在の要素のキー: 2
この時点のキーと値のペア -- キー 2: 値 3

次の要素に移動:

現在の要素:
妥当性のチェック:


もうクリアされましたか?



http://www.bkjia.com/PHPjc/825138.html
www.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/825138.html

技術記事

次のようにコードをコピーします。 class myIteratorimplements Iterator { private $position = 0; private $array = array( "first_element", "first_element", "last_element", );

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート