array(1) {
["id"]=>0
}
Видимо у вас кроме "теоретических" задачек когда нужен reset/key/next/prev/... вместо итератора - нет.
А я где-то написал, что итератор не перебирает значения?
Передергивание высказываний ... ммм обожаю.
Foreach ограничен, о чем говорит его название "для всех", нужно что-то иное, он уже не подходит.
это чьи слова?
Ну для начала если у вас в памяти массив на 1М значений, то foreach меньшая из проблем :) А в какой ситуации нам неважен сам элемент, а важен лишь его порядок? Разве что при пагинации, но возвращаемся к вопросу зачем вообще 1М значений в памяти?
Эээ итератор делает то что он должен - перебирает значения. Если нужно "что-то иное", то по определению итератор не подходит т.к. он не "что-то иное".
а чем конструкция if (условие) continue не устраивает внутри foreach?
Foreach при любом раскладе удобнее чем процедурные функции, которые ИМХО рудимент без полезной нагрузки.
Нужно мне сделать функцию работающую по принципу чёрной коробки - функция принимает ссылку и возвращает скачанный файл, ну или false если скачать файл по какой-то причине не получилось
Если file_get_contents при загрузки файла из сети получает не 200-ый ответ, он выдает ошибку. Как эту ошибку перехватить?
С самой пересылкой данных на сайт проблем нет.
Если по существу, то в php данный вопрос реализован лучше и гибче. Вам нужен инициализированный параметр, пожалуйста:
public int $count=10; - причем не с каким-то непонятным нулем, а ровно с тем, что нужно.
public ?int $count=null; - захотели, чтобы переменная была инициализирована типом null, пожалуйста.
Но вполне может быть, что я не хочу, чтобы переменная была инициализирована при создании объекта, я хочу знать установлен этот параметр или нет. Если там везде уже будут лежать какие-то ненужные значения, этого не сделать.
Т.е. чтобы получить желаемое вами поведение достаточно дописать =0, что просто и очень наглядно. Но при этом гибкость работы с параметрами возрастает очень сильно.
Null - это особый тип данных, с одним значением, динамические неинициализированные переменные получают этот тип. Но когда у нас указан тип int, никакой null туда уже не влезает.