«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2018/11/09 16:29:29  №1292479 1
image.png (29, 627x148)
148x627
помогите пожалуйста, тут написано что выполняем операцию которая хранится в $op, но как мне ее выполнить или достать оттуда?
Ответы: >>1292516 >>1292613 >>1292632
Аноним 2018/11/09 21:48:45  №1292613 2
image.png (17, 510x599)
599x510
Ответы: >>1292614 >>1308858
Аноним 2018/11/10 02:16:49  №1292670 3
»1292103
Не смогу конечно. Как раз сейчас делаю задачу по вектору, жжения в жопе от ООП не ощущаю. Единственное что - создаётся ощущение, что я делаю что-то не так. Пока не буду выкидывать код(т.к. он не дописан), но распишу что он из себя представляет. Надеюсь что Добрый Анон скажет где я проебался.
У меня объект компания, в котором лежит инфа о всех департаментах. От него зависит объект департамент, в котором записан лидер и название департамента . Далее работник, в котором вся инфа о работнике и дофига методов для тестов правильности заполнения, методов установки переменных, метод рассчёта, отладочный метод и прочее. Все, естественно, запривачено, а методы выше защищены, методы департамент и компания абстрактные. Конец. А отдельно живут функции создания объектов, создания разметки, массив с работниками который называется рекруты (я решил дать каждому работнику ещё и имя, хоть и условное, поэтому есть большой массив рекрутов с желаемым департаментом, именем и т.д.), функция распаковки массивка с последующей упаковкой объектов в массив, функция подсчета общих цифр по департаментам и, естественно, небольшой код, который запустит все это дерьмо. И вот когда я начал писать функцию подсчета общего числа работников, зп и прочего, у меня возникло чувство, что я что-то делаю не так. С одной стороны, это можно было запихнуть в объект департамента, а общий итог - в объект компании. С другой стороны департамент и компания - это абстрактные классы, а значит вызвать или создать объект из них я не смогу.
Подскажи, добрый Аноне, правильно ли я делаю?
Ответы: >>1292671 >>1308857
Аноним 2018/11/10 02:19:08  №1292671 4
>>1292670
Забыл еще написать, что у меня дохера комментариев, в которых обозначается что где есть. Ну, что есть, почти над каждой функцией я писал зачем она, а некоторый код, чтобы не выкидывать, я пихал в коммент и помечал что это вообще и откуда оно. Еще одна причина моего не особого желания выкладывать код. Он очень большой, в итоговом варианте вместе с массивом рекрутов и комментариями строк 300
Ответы: >>1292672
Аноним 2018/11/10 02:33:27  №1292672 5
>>1292671
И да, я столкнулся со вполне очевидной проблемой - не могу найти общую сумму т.к. все свойства объектов я сам же и защитил. Ну все, теперь я потерялся
Ответы: >>1292673 >>1308858
Аноним 2018/12/10 00:48:54  №1308858 6
>>1292672

> И да, я столкнулся со вполне очевидной проблемой - не могу найти общую сумму т.к. все свойства объектов я сам же и защитил.

Надо код расчета суммы поместить в тот же самый класс, и тогда он будет иметь доступ к свойствам.

>>1292613


> Задача про калькулятор
> https://ideone.com/kW3eWB

eval() лучше избегать по нескольким причинам. Например, что если у тебя нет достаточной фильтрации и пользователь сможет в математическое выражение засунуть вредоносный код, который eval выполнит? Тут он не требуется. Проще сделать функцию вычисления результата с if/elseif внутри.

Вот если ты не боишься очень сложного кода, посмотри, как разработчики PHPExcel реализовали вычисление выражений: https://github.com/PHPOffice/PhpSpreadsheet/blob/develop/src/PhpSpreadsheet/Calculation/Calculation.php

Функции strpos, strlen надо избегать, так как они не поддерживают utf-8: https://github.com/codedokode/pasta/blob/master/php/strings-utf8.md

Команда

$op;

выглядит странно.

Переменную $flag нужно назвать более осмысленно, чтобы было понятно, что в ней.