Как говорит Алекс, самоизменяющийся код очень, ОЧЕНЬ опасен. И НЕ отделять данные от кода просто глупо. Помимо этих двух предупреждений, факт, что массивы PHP относительно медленны и плохо масштабируются (так что вы можете file_put_contents ('data.ser', serialize ($ usr)) / $ usr = unserialize (file_get_contents ('data). ser ')) но это будет работать только для небольшого количества пользователей).
Тогда у вас возникла проблема с использованием обычных файлов для хранения данных в многопользовательском контексте - это возможно, но вам необходимо создать сложное управление очередью блокировок. Это обычно влечет за собой использование демона для управления очередью / мьютексом и всегда требует больше усилий, чем стоит.
Использование базы данных для хранения данных.