Асм надо изучать, чтобы иметь возможность заставить процессор выполнить именно те команды и втой последовательности, что нужно вам, а не как захотелось компилятору. В обычном программировании для ПК это обычно не нужно, но зачастую требуется при программировании драйверов и прочих системных вещей, когда требуется максимально возможная эффективность кода. Также к ассемблеру прибегают при программировании микроконтроллеров, когда программу не только нужно вместить в микроскопическую память, но и выполняться каждая ее ветвь должна за строго щаданное количество тактов.
Дело в примере далеко не в foreach. Здесь имеет место тяжёлый случай для языков программирования, в которых тип данных для переменной не определяется строго, к которым и относится PHP. Попробуйте заменить первый элемент массива на любое другое число - и этого "глюка" уже не будет.
Проблема в том, что интерпертатор PHP пытается сам подобрать подходящий для сравнения тип данных у переменной $value. Думаю, его логика такая, что он считает $value логической переменной (Boolean), в результате 0 превращается в FALSE. Но на другой стороне сравнения стоит одна буковка (Char), в результате чего FALSE преобразуется до F.
Чтобы избавиться от этого "глюка", можно использовать такие варианты:
- Явно указать тип переменной $value в сравнении.
- Использовать строгую проверку, чтобы PHP не приводил сравниваемые данные к наиболее подходящему типу.
Есть программа PHP - язык программирования и куча разных видео как научится программированию я тоже хотел потом поглядел это не для меня и бросил луче заниматься любимым делом.
Все зависит от постановки задачи и уровня программиста. Конкретную задачу начинающий программист должен поставить себе сам.
Зайдите в обзор, выберите программу и всё: ставьте галочку.