Хотейки и вопросы по проектированию классов? Всем дрям, я с новой порцией глупостей.
Пишу специфичный калькулятор и хочется, что бы всё было красиво, но вопрос на сколько это разумно, на сколько это сильно влияет на производительность и нужно ли это вообще . . .
1. Сейчас я обращаюсь к атрибуту класса так class->arr["name"], а хочется class->arr->name и это спокойно делается через магический метод __get, но что делать если у меня многомерный массив (class->arr->name["attr"])? Какую конструкцию использовать? Как лучше всё это упаковать, что бы потом так же красиво забрать от туда.
2. Как стоит поступить в таком случае:
У меня есть параметры материалов которые не меняются например материал и его габариты.
Лучше сделать массив с названием материала бревно(длина 3, ширина 5, высота 50) или лучше создавать отдельные массивы БревноДлина 3; БревноШирина 5; БревноВысота 50; и наверное стоит такие параметры вынести в отдельный ini-файл?
Спасибо!

21 Авг 2019 в 07:08
179 +1
0
Ответы
1

Для работы с многомерными массивами в классах вы можете использовать простой способ - обращаться к элементам массива поочередно, например: $class->arr->name["attr"]. Если у вас сложная структура многомерных массивов, то можно использовать цепочку вызовов, например: $class->arr->name->attr. В этом случае вам нужно будет реализовать соответствующие магические методы get и isset в классе, чтобы обеспечить корректную работу.

В отношении параметров материалов, лучше всего использовать массив с названием материала и его параметрами (например, массив "Бревно" с параметрами "длина", "ширина" и "высота"). Это позволит вам легко манипулировать материалами, добавлять новые и изменять их параметры. Вы также можете вынести параметры материалов в отдельный ini-файл, чтобы было удобнее их управлять и изменять без изменения исходного кода.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир