Back to questions
Senior
4
class Cache { private static $data = []; public function set($key, $value) { self::$data[$key] = $value; } public function get($key) { return self::$data[$key] ?? null; } } $cacheA = new Cache(); $cacheA->set('user', 'Alice'); $cacheB = new Cache(); echo $cacheB->get('user'); // ?
Companies where asked
CSSSR
Answer from AI
sobes.tech AI
В данном коде свойство $data объявлено как static, то есть оно общее для всех экземпляров класса Cache.
Когда вызывается $cacheA->set('user', 'Alice');, значение 'Alice' сохраняется в статическом массиве $data под ключом 'user'.
При вызове $cacheB->get('user'); — несмотря на то, что это другой объект, он обращается к тому же статическому массиву, поэтому вернёт 'Alice'.
Вывод:
Alice
Это демонстрирует, что статические свойства принадлежат классу, а не конкретному объекту.