Что такое поведение copy-on-write?

Ответ

Copy-on-Write (COW) - оптимизация, при которой копирование данных откладывается до момента первой модификации.

$a = str_repeat('x', 1_000_000); // 1 MB
$b = $a;  // НЕ копирует данные! $b указывает на те же данные
// Пока $a и $b только читаются - используется одна копия

$b .= 'y'; // ЗДЕСЬ происходит реальное копирование

COW работает для строк, массивов и других типов на уровне zval. Внутренне PHP использует refcount (счетчик ссылок) для отслеживания количества переменных, указывающих на одни данные.

Это объясняет, почему передача больших массивов в функцию по значению не приводит к замедлению, пока массив не модифицируется внутри.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.