PHP yield關鍵字功能與用法分析

2022-09-26 06:54:11 字數 1038 閱讀 8516

yield 關鍵字是php5.5版本推出的乙個特性。生成器函式的核心是yield關鍵字。它最簡單的呼叫形式看起來像乙個return申明,不同之處在於普通return會返回值並終止函式的執行,而yield會返回乙個值給迴圈呼叫此生成器的**並且只是暫停執行生成器函式。

example #1 乙個簡單的生成值的例子

<?php function gen_one_to_three()

}$generator = gen_one_to_three();

foreach ($generator as $value)

?>

簡單來說就是:yield是僅僅是記錄迭代過程中的乙個過程值

補充示例:

示例2:

/*** 計算平方數列

* @param $start

* @param $stop

* @return generator

*/function squares($start, $stop)

} else

}}foreach (squares(3, 15) as $n => $square)

輸出:    3 squared is 9

4 squar is 16

5 squared is 25

...示例3:

//對某一陣列進行加權處理

$numbers = array(『nike『 => 200, 『jordan『 => 500, 『adiads『 => 800)dvppenbrj;

//通常方法,如果是百萬級別的訪問量,這種方法會占用極大記憶體

function rand_weight($numbers)

$rand = mt_rand(0, $total-1);

foreach ($distribution as $num => $weight)

}//改用yield生成器

function mt_rand_weight($numbers)

}function mt_rand_generator($numbers)

}

php yield關鍵字理解

生成器函式的核心是yield關鍵字。它最簡單的呼叫形式看起來像乙個return申明,不同之處在於普通return會返回值並終止函式的執行,而yield會返回乙個值給迴圈呼叫此生成器的 並且只是暫停執行生成器函式。example 1 乙個簡單的生成值的例子 function gen one to th...

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...