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