Andrei4ik93, на твой пост (25.12.2014 / 00:16) отвечу, первый способ, плохой: делаешь переменную $user глобальной. Соответственно внутри функции сначала проверяешь условие isset($user) и возвращаешь его, либо выполняешь sql запрос и результат сохраняешьв глобальный $user.
Второй, красивый — замыкания. Когда ты вычисляешь значение $user и подменяешь функцию user так, чтобы она возвращала только вычисленное значение.