Сохранять значение переменной внутри функции

Чтобы сохранять значение переменной внутри функции, её надо создать через ключевое слово static.

function getData($value) {
    static $cache = null;
    if (!$cache) {
        $cache = $value;
    }

    return $cache;
}

echo getData('PHP');
echo getData('Python');

// PHP PHP

В коде выше видно, что два раза выводится «PHP». Функция возвращает значение переменной, записанную при первом вызове.

Если бы не использовалось ключевое слово static, то пример выше вернул бы «PHP Python».