Aelliari, ну, по моему опыту поглощения местного провайдера МТС-ом - весь его внутренний колхоз был просто выкинут чохом, без всяких поглощений. Гигантам это добро без надобности.
Я, на самом деле, был искренне уверен, что звездочка не играет и это обозначение константного указателя. Просто действительно никогда не сталкивался с такой "вывернутой" записью.
Валентин, региональные сети начали дохнуть, когда домашний интернет перешагнул лимит в пару мегабит и найти что-то в гугле и тут же скачать стало проще, чем шариться по доморощенным помойкам. Так что "жрать при укрупнении" было уже нечего.
Fompi, это вы меня спрашиваете или это компилятор вас спрашивает? Вообще-то обнуление никем не гарантировано, некоторые компиляторы по умолчанию оказывают вам эту любезность - или нет, в зависимости от того, собирается отладочная версия или релиз.
У любого "крестовика" переменная, которая просто так повисла объявленной без инициализации, должна сразу вызывать подозрение в госизмене. Так объявляются члены классов, которые инициализируются в конструкторе. Переменная же, как правило, должна принять некоторое значение сразу после объявления.
В вашем же коде стоит по всем четырем этим переменным ответить на три вопроса:
1) где они действительно используются;
2) должны ли они сохранять свое значение между итерациями цикла, что оправдывало бы их вынос наружу из той области, где они используются;
3) и разумеется - какое значение они имеют при первой итерации, если п. 2 верен.
Fompi, это "удобство" оборачивается тем, что вы перестаете следить за жизнью переменных.
Посмотрите внимательно и определите, чему равна k при ее первом использовании в коде.
Это же С++, а не С. Не надо скопом объявлять все переменные раньше, чем они понадобились.
Тогда не будет, как в этом коде, ни разу не инициализированной k.
Cерега Белый, нет, наоборот, вызов функции - это лишние накладные расходы. Но вызов функции позволит обработать массивы любой вложенности, а вложенный цикл - только на один уровень вглубь. Если у вас $d = [[10, 20], 32]; - рекурсия развернет каждое значение, а вложенный цикл выдаст ошибку - в echo попадет массив [10, 20] вместо значения.
michadimin, а получается, что вы, изучая велосипед, пытаетесь рулить без колес.
Никакой особенной дичи в примерах нет - там используются базовые классы библиотеки.
Наследование - если класс абстрактен и сам по себе ничего не делает.
Зачем for для каждого пункта? Все делается в одном цикле, просто обнуляется по условию.
Впрочем, ТС-у вряд ли понятно и ваше упрощенное объяснение.
Хитрован накопал код от другой задачи, которого сам не понимает, и надеется, что кто-то поработает за него.
JS - вообще самый неряшливый из языков, с которыми я знаком. По нему судить о каких бы то ни было концепциях просто нелепо, в нем они превращаются в салатик.
образуется каша. Лично я не знаю решения этих проблем
Я как раз обычно решаю проблему "каши" архитектурой классов. Даже в JS, хотя там это больше напоминает разгребание на отдельные кучи.
mayton2019, WbICHA, ФП (функциональное программирование) - это вообще-то совершенно другая область. То, что вы имеете в виду - это процедурное программирование.
По моему опыту работы в обоих парадигмах и неоднократного рефакторинга процедурного кода в ООП - второй все-таки облегчает жизнь программисту в масштабных проектах. Не столько при написании кода, впрочем, сколько при поддержке.