Лучше выложить код в посте кнопкой </>. А так, вот эту чушь лучше не писать, даже если оно работает: Этому вас кто-то научил, судя по комментарию, и научил плохому. Код не должен нуждаться в комментариях, если поставлено условие проверять длинну строки, есть функции strlen и mb_strlen, названия которых говорят сами за себя. Выигрыш от приёмчика по производительности копеечный, если он есть, на современной машине вообще не заметен
Синтаксис фигурных скобок для доступа к символу в строке устарел в PHP 7.4.0 и больше не поддерживается в PHP 8.0.0.
Пост старый, много воды утекло, тогда еще боялись и preg функции использовать из-за медленности. Экономия на инкрементах... 17 пункт уже не сработает
Оптимизация не делается заранее, оптимизация делается тогда, когда есть проблемы с производительностью, и ты на 100% уверен, что они именно там, где ты ищешь. И по опыту, это не инкременты / вызовы методов и прочая фигня. Это неэффективные алгоритмы, кривые/медленные запросы к базе и т.п. Если в хреновый алгоритм изменить по всем пунктам этой статьи на хабре, он всё равно останется хреновым и будет работать медленно.
PHP: $User->info->visits = json_decode($User->info->visits); // Превращение visits в массив Рука2Лицо. --- Добавлено ---
PHP: $Value = explode(":", $value); // Разделение значений Переменные должны называться так, чтобы было видно что в них находится. $Value - ни о чём никому не говорит. В методы класса лучше сразу передавать нужные значения(или объект), а не массив: PHP: public function SignIn($value) превращается в PHP: public function SignIn($login, $password, $fingerprint) И ниже по коду почисти такое же. Ну и в целом никаких индексов а-ля $Value[1], $Value[2] и тд не должно быть - только понятные слова. PHP: $User->info->visits = json_decode($User->info->visits); // Превращение visits в массив $User->info->visits[] = $Value[2]; // Добавление в visits fingerprint $User->info->visits = json_encode($User->info->visits); // Превращение visits обратно в json Так делать нельзя - очень скоро база данных скажет, что длина твоей ячейки visits в таблице превысила максимальную допустимую длину. Для такого заводи новую таблицу и пиши туда эти фингрепринты со ссылкой на пользователя по его ключу. PHP: return json_encode($Answer); // Отправка ответа в json Это нарушение принципа единой ответственности (буква S из SOLID) - модуль аутентификации(не авторизации - погугли разницу) не должен отправлять ответ пользователю. Это не его задача. PHP: return "UserNotFound"; // Возвращение ошибки Вижу только возвращение строки, причём даже не в виде жсона. Почему, кстати в других отдаёшь жсон, а тут не?