В этой статье описывается функция и использование ключевого слова PHP yield с примерами. Поделитесь для вашей справки следующим образом:
Ключевое слово Yield является особенностью PHP версии 5.5 Это тот самый случай. Ядром функции генератора является ключевое слово yield. Его простейшая форма вызова выглядит как объявление возврата, за исключением того, что обычное возвращение возвращает значение и завершает выполнение функции, в то время как yield возвращает значение коду, который вызывает генератор итеративно и только приостанавливает выполнение функции генератора.
Пример № 1 Простой пример генерации значений
Проще говоря: доходность
– это просто запись значения процесса в процессе итерации
Дополнительные примеры:
Пример 2:
/** * Calculate the square sequence * @param $start * @param $stop * @return Generator */ function squares($start, $stop) { if ($start < $stop) { for ($i = $start; $i <= $stop; $i++) { yield $i => $i * $i; } } else { for ($i = $start; $i >= $stop; $i--) { Yield $i => $i * $i; // iteratively generate arrays: key= value } } } foreach (squares(3, 15) as $n => $square) { echo $n . 'squared is' . $square . '
'; }
Выход:
3 в квадрате равно 9 4 в квадрате равно 16 5 в квадрате равно 25 …
Пример 3:
// Weighting an array $numbers = array('nike' => 200, 'jordan' => 500, 'adiads' => 800); // Usually, if it's a million-level access, it takes up a lot of memory. function rand_weight($numbers) { $total = 0; foreach ($numbers as $number => $weight) { $total += $weight; $distribution[$number] = $total; } $rand = mt_rand(0, $total-1); foreach ($distribution as $num => $weight) { if ($rand < $weight) return $num; } } // Change to Yield Generator function mt_rand_weight($numbers) { $total = 0; foreach ($numbers as $number => $weight) { $total += $weight; yield $number => $total; } } function mt_rand_generator($numbers) { $total = array_sum($numbers); $rand = mt_rand(0, $total -1); foreach (mt_rand_weight($numbers) as $num => $weight) { if ($rand < $weight) return $num; } }
Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы с PHP и использования операторов, Краткое описание использования строк Php, Введение в работу с базой данных php+mysql и общие операции с базами данных php. Краткое изложение навыков письма ___________
Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.