Я думаю, что вы пытаетесь решить не ту проблему здесь. Чтобы ответить на ваш вопрос, нет, вы должны использовать session_start перед выполнением операций сеанса. Вы также можете уничтожить сеанс, если он не нужен в том же запросе с session_destroy .
Вы можете обойти проблему session_start с некоторыми умными вариантами хранения сеанса, но я думаю, что этопросто неправильный ответ на вашу проблему. Размер сессий, хранящихся на ФС, действительно незначителен, если объем занимаемой вами установки серверов составляет не менее 8 ГБ. Кроме того, местом хранения сеанса по умолчанию является / tmp, который обычно устанавливается как ramfs, чтобы избежать любых дисковых накладных расходов. Если вы работаете с ограничениями хранилища сессий FS, вам, вероятно, нужно использовать другой SessionHandler , такой как memcached , не беспокоясь о том, нужно ли вам начинать сеанс. На связанной ноте прекратите преждевременную оптимизацию вашего кода. Хранение сеансов не будет проблемой, пока вам не понадобится более одного сервера. В действительности будет гораздо больше запросов к базе данных, которые выиграют от дополнительного индекса, чем неясные оптимизации, подобные этой.