If I enable file-based cache on windows and php 7.4.29, everything is broken.
But if I change:
if ((time() - $cacheTime <= $modSettings['settings_updated'])
|| $menu_buttons = $cache->get('menu_buttons-' . implode('_', $this->user->groups) . '-' . $this->user->language, $cacheTime) === null)
to:
if ((time() - $cacheTime <= $modSettings['settings_updated'])
|| ($menu_buttons = $cache->get('menu_buttons-' . implode('_', $this->user->groups) . '-' . $this->user->language, $cacheTime)) === null)
in themes/default/Theme.php it works again.
So, for sure this has to be changed, though I cannot verify if this is actually the issue here because I hate caches and don't know how to use them, and I have the ftp stuff on the other system (that is still waiting to be restored).