Sobes.tech
Middle

Ի՞նչ է 'copy on write' վարքագիծը։

sobes.tech AI

Պատասխան AI-ից

Սա PHP (և այլ լեզուների/համակարգերի) հիշողության կառավարման օպտիմալացման է, որտեղ փոփոխականի արժեքի պատճենը չի կատարվում անմիջապես, այլ միայն այն ժամանակ, երբ մենք փորձում ենք փոփոխել պատճենը կամ սկզբնականը, եթե երկուսն էլ հղում են նույն հիշողության վայրին: Փոփոխությունից առաջ երկու փոփոխականներն էլ պարզապես հղում են նույն տվյալներին:

<?php
$a = 'շարահյուսություն'; // $a հղում է հիշողության բլոկին, որը պարունակում է "շարահյուսություն"
$b = $a; // $b այժմ նույնպես հղում է նույն բլոկին, պատճենում չի կատարվում

// Միայն հիմա, երբ փոփոխվում է $b, PHP ստեղծում է նոր տվյալների պատճենը $b-ի համար
$b .= ' փոխված';

echo $a; // Ցուցադրում է: շարահյուսություն

echo $b; // Ցուցադրում է: շարահյուսություն փոխված
?>