Добрый день. Изучаю Php и не понимаю чем отличается генератор и функция. Они оба работают одинаково, разве что в функции для вывода используется return а в генераторе yield. Можете объяснить разницу?
Заранее благодарю
Евдоким, ну yield работает как и во всех языках просто сохраняет стек функции, и при обратном вызове продолжает ее исполнять после yield, а при return она просто исполняется сначала. Ну вам оно не нужно, тем более если вы только начали изучать, это специфическая штука без которой вообще можно обойтись, используя свои итераторы, просто так код типа красивее и проще.
Если функция возвращает большой массив, который железо не позволяет обработать, то можно заменить return на yield. И каждый элемент массива будет вычислен и возвращен поодиночке, когда дойдет до него очередь в цикле.