В Python (и других) вы можете постепенно обрабатывать большие объемы данных с помощью оператора yield в функции. Что было бы аналогичным способом сделать это в PHP?
Например, скажем, в Python, если бы я хотел прочитать потенциально очень большой файл, я мог бы работать с каждой строкой по одной за раз, например, так (этот пример придуман, так как это в основном то же, что строка в file_obj '):
def file_lines(fname):
f = open(fname)
for line in f:
yield line
f.close()
for line in file_lines('somefile'):
#process the line
То, что я сейчас делаю (в PHP), это то, что я использую частную переменную экземпляра для отслеживания состояния и действую соответственно при каждом вызове функции, но, похоже, должен быть лучший способ.