Переопределение метода - способ.
Полиморфизм - цель.
Вы обсасываете ООП-терминологию на клочке кода. А ООП - это взаимодействие объектов. Вот эти два класса обеспечивают возможность обрабатывать объекты этих классов, не обращая внимания на то, который из них реализован.
В этом и суть полиморфизма в ООП: единый интерфейс, позволяющий оперировать любыми потомками так же, как базовым классом, хотя реализация у них разная.
А в учебниках и википедиях этот термин рассусоливают по всем языкам и парадигмам сразу, вот и получается, что вроде бы чего-то и сформулировали, а приложить настолько размазанную формулировку не к чему.
У private методов есть четкое требование: вызывающий их this должен быть объектом именно того класса, где объявлен этот метод. В любом другом случае вы получите именно такую ошибку.
Подскажу отлаживать код и проверить, что у вас в this, когда вызывается formatClock. Ну, и разбираться, почему.
sashakirichenko, вы так сервер положите лишней нагрузкой, поскольку каждый юзер будет каждый раз качать каждый ресурс, который должен был закешироваться. Хреновый способ, в общем.
Ну, и SEO под лежачий сервер тоже не течет, как известно ;)
Drno, это же линукс. Из коробки никаких песочниц, хочешь - сам заводи firejail, например.
А так - в Убунте для удобства пользователей у вайна из коробки диск Z: маппит /,и все, что доступно пользователю, доступно и вайну.
то что работает на винде - в линукс работать не будет, включая вирусы
WRONG. Есть Wine, и виндовские трояны он запускает ничуть не хуже, чем сами винды.
Поэтому, если что-то запускается под Вайном, прогонять его через антивирь все-таки стоит.
Но для этого нет нужды ставить антивирус в систему.
Достаточно кинуть подозрительный софт на Virustotal.com, например.
Ну, и в принципе, никто не мешает собрать под Линь троян, который воспользуется каким-либо уже известным эксплойтом, и подсунуть ламеру, вчера слезшему с винды, чтобы он его запустил. Тут уже вопрос чистоплотности и понимания, что для Линя ПРОСТО НЕ НАДО качать софт откуда попало. Почему-то вчерашним подоконникам эта концепция дается с трудом...
Soft_touch_plastic, у вас странное представление о читаемости.
Отличить a от b значительно легче, чем customVar12 от customVar13.
Вы себе просто придумали красивую картинку и даже не пытаетесь приложить ее к действительности.
Все, что сможет сделать машина с минифицированным кодом - это разобрать его из одной строчки в (пальцем к носу) разделенный на строки с соответствующими отступами. Но это вам и любая путная IDE сделает, отдельный инструмент не нужен.
Drno, у этой приставки беспроводной тачпад, который можно использовать и как клавиатуру. Удобно и понтово, наверное. Но плюнув на эти понты и заменив его смартфоном - полагаю, ничего не потеряешь. Разве что весь смысл покупки этого древнего Асера ;)
Венгерская нотация требовала всобачивать в имя еще и тип и прочую инфу, что появление нормальных IDE давно сделало ненужным. Здесь же просто соглашение, помогающее читающему бегло отделять поля класса от прочих переменных.
Теоретически IDE опять-таки может сделать это, например, цветом. Но на практике удобнее все-таки использовать соглашение об именовании.
Drno, ну, красивый корпус уже есть, зачем покупать приставку?
В него, надо думать, влезет Raspberry Pi 4B, на нее - Kodi.
Только ТС, надо думать,хочет, чтобы железные фишки его "мечты" работали, проблема-то именно в этом - вряд ли "уникальный Magick Pad" заработает из коробки, если Асер его колхозил только под винду.
Да даже строительные конструкции положено перевозить в рабочем положении, потому что на динамические нагрузки поперек несущей плоскости их элементарно никто не рассчитывал.
Насчет задачи - важно очень четко сформулировать критерий оптимальности. Скорее всего, это будет минимальное количество машин, необходимых для перевозки всех коробок (чтобы не оказалось, что почти все влезло в одну машину, но две оставшиеся коробки по габаритам вместе в один кузов не влезают). Во вторую очередь - максимальный свободный объем в последнем кузове. Чтобы увеличить шансы, что при добавлении к складу еще одной коробки не придется пересчитывать все заново.
ladylynx, либо все-таки в коде где-то вместо "." использован "+" - в РНР это обычная причина проблемы "вместо строки получаю какое-то число".
Либо в шаблоне, по которому строится этот текст, вместо одной переменной указана другая (какой-нибудь #BP_ID# вместо #BP_LINK#) - но я вот так. не глядя и наизусть, помочь не смогу, бизнес-процессы в Битриксе никогда не настраивал.
kyurem_bog, может, конечно, все же кэшируется. А у Яндекса сейчас еще какие-то проблемы, у меня в Метрике он на страницу Быстрые ссылки выдает "Cервис временно недоступен".
bugman, а чего его поддерживать? Поставил тот же Дебиан, добавил fail2ban, чтобы не ломились, поднял wireguard - и думать забыл, пока он еще зачем-нибудь не понадобится.
Имхо, разница в 55 рублей с бесплатным весьма окупается отсутствием мыслей о том, кто и как может сунуть нос в твой трафик.
VPS за 55 рублей в месяц - это, конечно, не бесплатно, но вполне себе "для бедных".
На нем спокойно поднимается wireguard, пишка подсасывается - и все просто работает...
Судя по тому, что вы на этот текст не хватаетесь за голову, а удивленно спрашиваете здесь - вам стоит нанять разобраться с этой проблемой фрилансера, знающего РНР.
Полиморфизм - цель.
Вы обсасываете ООП-терминологию на клочке кода. А ООП - это взаимодействие объектов. Вот эти два класса обеспечивают возможность обрабатывать объекты этих классов, не обращая внимания на то, который из них реализован.
В этом и суть полиморфизма в ООП: единый интерфейс, позволяющий оперировать любыми потомками так же, как базовым классом, хотя реализация у них разная.
А в учебниках и википедиях этот термин рассусоливают по всем языкам и парадигмам сразу, вот и получается, что вроде бы чего-то и сформулировали, а приложить настолько размазанную формулировку не к чему.