насколько я знаю строки сравниваются посимвольно (char коды)
Только не посимвольно, а по байтно, хотя практически особой разницы нет. Строка - это массив байт и сравнение проходит также, побайтно бежим по массивам.
Насколько я знал, при сравнение строк, значения приводятся в тип int, но если явно привести их в тип int, то они будут равны
Нет, не приводятся. Разве что, до 8 версии, если один из аргументов число или строка содержащее число, то тогда оба аргумента преобразовываются в числа перед сравнением.
По-моему, лучше сразу смотреть в сторону чего-то другого. В Jira мало бесплатных плагинов, да и сама система - это баг-треккер, не сильно полезный в разработке проекта, но тем не менее дико популярный сейчас как замена всего и вся. Раньше Redmine был хорош, бесплатный и с кучей бесплатных плагинов, при этом из коробки предоставлял нормальную древовидную структуру задач, с адекватным подсчетом времени и всего прочего для родительских на основе дочерних, в Jira даже сейчас это сделать можно только через плагины и работает очень уныло. Но может сейчас есть чтото и получше.
UAT - User Acceptance Testing. Причем здесь тестирование в QA?
Пока разработчики "работают в проекте одновременно с одними файлами" конфликты будут всегда, как бы вы не работали с git (но разумеется лучше взять какой-то стандартный workflow, а не изобретать велосипеды).
Можно попробовать следующее: правильно распределяйте задачи, чтобы снизить кол-во конфликтов; попробуйте правильно организовать проект, скорее всего в нем нарушение принципов SP. И, отлаживайте интеграцию, внедряйте Continuous Integration, разработчики должны как можно чаще интегрироваться, а если заранее известно, что будут правки на одном и том же поле, то они должны договариваться заранее.
planc, это все понятно. Вопрос в том, оправдан ли такой подход в 2021 году? Да, когда-то манипуляции с низкоуровневыми настройками давали очень хорошие результаты. Но, сейчас, я не знаю, чтобы подобное давало ощутимый профит, а вот затраты на сборку выглядят как очень большой минус. То, что используются бинарники уже признание неэффективности подхода. Гентушники зачастую даже не могут ответить сколько времени у них тратится на пересборку мира, потому что озвучивать такие цифры действительно стыдно.
С другой стороны, я беру любой дистрибутив, ставлю или обновляю нужный пакет за несколько секунд. Нужны низкоуровневые изменения, всегда можно собрать этот пакет из исходников. Т.е. я не трачу огромное кол-во времени на конфигурирование ненужного, но в то же время, при необходимости могу конфигурировать то, что нужно.
Поэтому мой вопрос, есть ли действительная польза в таком подходе, перевешивающая минусы, если, конечно, приходилось пользоваться Gentoo повседневно?
Ян Александров, как угодно, как добавят в шаблонизатор так и будет.
Суть в том, что в php добавляются универсальные вещи, которые полезны при решении любых задач. В модули, то что полезно при работе с какой-то спецификой, но тем не менее универсальной (СУБД например). То что предлагаете вы, решается на стороне шаблонизатор. Т.е. более резонно написать разработчикам шаблонизаторов. А может, просто добавить свои функции.
Ян Александров, ваше предложение описывает html вёрстку, такие вещи решаются шаблонизаторами, а php уже очень давно универсальный язык.
Match отличается от switch сравнением с учётом типов, и уже только это даёт ему право на жизнь.
planc, так чем он хорош?
Понятно, что сборку можно ускорить, но вопрос в том, а надо ли собирать из исходников и тратить на это время? Какие плюсы перевешивают эту трату времени?
Владимир Коротенко,
1) Имеется ввиду обход ограничений на подключение извне, если клиент за NAT? Из выражения "пробивание сетевых фильтров" мало что понятно.
2) Зачем между 1 сервером и 1 клиентом более 65000 соединений?
runapa, если вопрос в том, не является ли операция update тем же самым, что и delete и insert - для MySQL нет, не является, поэтому update в ней будет проходить быстрее.
FanatPHP, согласен, здесь можно обойтись и без исключений, все-таки исключение - вещь исключительная. Но автор пишет про некорректные входные параметры, т.е. тут не факт, что это логика программы. И раз необходимо прерывать выполнение кода с неуспешным статусом на исключение это вполне тянет.
Т.е. если мы просим калькулятор разделить число на 0, то это явно логика и нет повода кидать исключение. Но если, мы передаем в код идентификатор сервера с которым нужно работать, а такого сервера нет, то вполне можно бросить исключение. Из приведенного кода не сильно понятно какой это случай.
В дополнение, то что вы хотите вывести что-то на экран, нисколько не отменяет, что нужно бросить Exception. Т.е. выводите что нужно и снова бросаете тот же Exception, без всяких die(). А так как вы скорее всего хотите обрабатывать так, все исключения, то все это нужно вынести в общий обработчик исключений.
Только не посимвольно, а по байтно, хотя практически особой разницы нет. Строка - это массив байт и сравнение проходит также, побайтно бежим по массивам.