À̵¿ °¡´ÉÇÑ Memory Objects¸¦ ÀÛ¼ºÇÏ·Á¸é , MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ ÀÇ
create([$data])
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
<?php
$memObject = $memoryManager->create($data);
"À̵¿ °¡´É" (ÀÌ)¶õ, ÀÌ ¿ÀºêÁ§Æ®°¡ ½º¿Ò µÇ¾î ¸Þ¸ð¸®·ÎºÎÅÍ »èÁ¦µÉ °¡´É¼ºÀÌ ÀÖ´Â °ÍÀÔ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÒ ¶§¿¡, ÀçÂ÷ ¸Þ¸ð¸®¿¡ ÀÐÈü´Ï´Ù.
¶ô µÈ Memory Objects¸¦ ÀÛ¼ºÇÏ·Á¸é , MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ ÀÇ
createLocked([$data])
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
<?php
$memObject = $memoryManager->createLocked($data);
"¶ô µÇ¾ú´Ù" (ÀÌ)¶õ, ÀÌ ¿ÀºêÁ§Æ®´Â °áÄÚ ½º¿Ò µÇÁö ¾Ê°í, ¸Þ¸ð¸®·ÎºÎÅÍ »èÁ¦µÇÁö ¾Ê´Â´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
¶ô µÈ ¿ÀºêÁ§Æ®´Â, À̵¿ °¡´ÉÇÑ ¿ÀºêÁ§Æ®¿Í °°Àº ÀÎÅÍÆäÀ̽º
(Zend_Memory_Container_Interface
) (À»)¸¦ Á¦°øÇÕ´Ï´Ù.
µû¶ó¼, ¶ô µÈ ¿ÀºêÁ§Æ®´Â
¾î¶² Àå¸éÀ̶óµµ, À̵¿ °¡´ÉÇÑ ¿ÀºêÁ§Æ®´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÛÆ÷¸Õ½º¸¦ °í·ÁÇØ, ÀϺÎÀÇ ¿ÀºêÁ§Æ®´Â ½º¿Ò ½ÃŰÁö ¾Ê°Ô ÇÏ°í ½Í´Ù´Â µî ¸»ÇßÀ» °æ¿ì¿¡, À̰ÍÀº À¯¿ëÇÕ´Ï´Ù.
¶ô µÈ ¿ÀºêÁ§Æ®¿¡ÀÇ ¾×¼¼½º´Â º¸´Ù °í¼ÓÀ¸·Î µË´Ï´Ù. ±×·¸´Ù°í ÇÏ´Â °Íµµ, MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ ÀÌ ±× ¿ÀºêÁ§Æ®ÀÇ º¯°æ ³»¿ëÀ» µÚÂÑÀ» Çʿ䰡 ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
¶ô µÈ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º (Zend_Memory_Container_Locked
)
(Àº)´Â, Åë»óÀÇ ¹®ÀÚ¿ º¯¼ö¿Í »ç½Ç»ó µ¿ÀÏÇÑ Á¤µµÀÇ ÆÛÆ÷¸Õ½º¸¦ º¸ÁõÇÕ´Ï´Ù.
¿À¹öÇìµå°¡ µÇ´Â °ÍÀº, Ŭ·¡½ºÀÇ ÇÁ·ÓÆÛƼ¸¦ ÃëµæÇÒ ¶§ÀÇ ÂüÁ¶ÀÇ ÇØ°á¸¸ÀÔ´Ï´Ù.
(À̵¿ °¡´ÉÇÑ, ȤÀº ¶ô µÇ¾ú´Ù) ¸Þ¸ð¸® ÄÁÅ×À̳ÊÀÇ 'value
'
ÇÁ·ÓÆÛƼ¸¦ »ç¿ëÇϰí, Memory ObjectsÀÇ µ¥ÀÌÅ͸¦ Ãë±ÞÇÕ´Ï´Ù.
<?php
$memObject = $memoryManager->create($data);
echo $memObject->value;
$memObject->value = $newValue;
$memObject->value[$index] = '_';
echo ord($memObject->value[$index1]);
$memObject->value = substr($memObject->value, $start, $length);
Memory ObjectsÀÇ µ¥ÀÌÅÍ¿¡ ¾×¼¼½º ÇÏ´Â ¶Ç ÇϳªÀÇ ¹æ¹ýÀ¸·Î¼
getRef()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù.PHP ÀÇ ¹öÁ¯ÀÌ 5.2 º¸´Ù ³°Àº °æ¿ì´Â,
¹Ýµå½Ã ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
ÆÛÆ÷¸Õ½ºÀÇ ¹®Á¦·ÎºÎÅÍ, ±× ¿ÜÀÇ °æ¿ì¿¡µµ À̰ÍÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀÌ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.
¸Þ¸ð¸® ÄÁÅ×À̳ʴÂ, ÀÌÇÏÀÇ ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù.
<?php
public function &getRef();
getRef()
¸Þ¼Òµå´Â, ¿ÀºêÁ§Æ®ÀÇ °ª¿¡ÀÇ ÂüÁ¶¸¦ µ¹·ÁÁÝ´Ï´Ù.
À̵¿ °¡´ÉÇÑ ¿ÀºêÁ§Æ®´Â, ¸¸¾à ¸Þ¸ð¸®³»¿¡ ¾øÀ¸¸é ÀÌ ½ÃÁ¡¿¡¼ ij½¬·ÎºÎÅÍ ÀÐÈü´Ï´Ù. ¿ÀºêÁ§Æ®¸¦ ij½¬·ÎºÎÅÍ Àоîµé¿´À» °æ¿ì¿¡, ¸Þ¸ð¸®³»¿¡¼ °ü¸®Çϰí ÀÖ´Â ¿ÀºêÁ§Æ®ÀÇ »çÀÌÁî°¡ Á¦ÇÑ¿¡ À̸£¸é, ´Ù¸¥ ¿ÀºêÁ§Æ®ÀÇ ½º¿ÒÀÌ ¹ß»ýÇÕ´Ï´Ù.
PHP ÀÇ ¹öÁ¯ÀÌ 5.2 º¸´Ù ³°Àº °æ¿ì, Memory ObjectsÀÇ µ¥ÀÌÅÍ¿¡ ¾×¼¼½º ÇÏ·Á¸é
¹Ýµå½Ã getRef()
¸Þ¼Òµå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
µ¥ÀÌÅÍÀÇ º¯°æ ³»¿ëÀ» µÚÂÑÀ¸·Á¸é , ¿©ºÐÀÇ ÀÚ¿øÀÌ ÇÊ¿äÇÕ´Ï´Ù.
getRef()
¸Þ¼Òµå´Â ¹®ÀÚ¿¿¡ÀÇ ÂüÁ¶¸¦ µ¹·ÁÁÖ¾î,
À̰ÍÀº ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ Á÷Á¢ º¯°æÇÏ°Ô µË´Ï´Ù.
Áï, µ¥ÀÌÅÍÀÇ ³»¿ëÀ» ó¸®ÇÒ ¶§ getRef()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´É¼÷ÇÑ ¹æ½ÄÀÌ µË´Ï´Ù.
<?php
$memObject = $memoryManager->create($data);
$value = &$memObject->getRef();
for ($count = 0; $count < strlen($value); $count++) {
$char = $value[$count];
...
}
<?php
public function touch();
touch()
¸Þ¼Òµå´Â
getRef()
(¿Í)°ú °°ÀÌ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
À̰ÍÀº, ¿ÀºêÁ§Æ®ÀÇ °ªÀÌ º¯°æµÈ °ÍÀ» ÅëÁöÇÕ´Ï´Ù.
<?php
$memObject = $memoryManager->create($data);
...
$value = &$memObject->getRef();
for ($count = 0; $count < strlen($value); $count++) {
...
if ($condition) {
$value[$count] = $char;
}
...
}
$memObject->touch();
<?php
public function lock();
lock()
¸Þ¼Òµå´Â, ¿ÀºêÁ§Æ®¸¦ ¸Þ¸ð¸®³»¿¡ Àá±Þ´Ï´Ù.
À̰ÍÀ» »ç¿ëÇϰí, ½º¿Ò ÇÏ°í ½ÍÁö ¾ÊÀº ¿ÀºêÁ§Æ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.
Åë»óÀº À̰ÍÀº ºÒÇÊ¿äÇÕ´Ï´Ù.¿Ö³ÄÇϸé, MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ ÀÌ
´É¼÷ÇÑ »óÅ·Π½º¿Ò ÇÏ´Â È常¦ ¼±ÅÃÇϵµ·Ï(µíÀÌ) µÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù.
±×·¯³ª, ¾Æ¹«·¡µµ ½º¿Ò ÇØ¼´Â ¾È µÇ´Â ¿ÀºêÁ§Æ®°¡ ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ°í ÀÖ´Â °æ¿ì´Â,
±×°ÍÀ» Àá±×¸é ÁÁÀ» °ÍÀÔ´Ï´Ù.
¿ÀºêÁ§Æ®¸¦ ¸Þ¸ð¸®³»¿¡ Àá±×´Â °ÍÀ¸·Î, ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â
getRef()
¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â ÂüÁ¶°¡ À¯È¿ÇÏ´Ù¶ó°í ÇÏ´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.
<?php
$memObject1 = $memoryManager->create($data1);
$memObject2 = $memoryManager->create($data2);
...
$memObject1->lock();
$memObject2->lock();
$value1 = &$memObject1->getRef();
$value2 = &$memObject2->getRef();
for ($count = 0; $count < strlen($value2); $count++) {
$value1 .= $value2[$count];
}
$memObject1->touch();
$memObject1->unlock();
$memObject2->unlock();
<?php
public function unlock();
unlock()
¸Þ¼Òµå´Â,
¶ôÀÌ ºÒÇÊ¿äÇØÁø ¿ÀºêÁ§Æ®ÀÇ ¶ôÀ» ÇØÁ¦ÇÕ´Ï´Ù.
À§ÀÇ ¿¹¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
<?php
public function isLocked();
isLocked()
¸Þ¼Òµå¸¦ »ç¿ëÇϰí,
¿ÀºêÁ§Æ®°¡ ¶ô µÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.
¿ÀºêÁ§Æ®°¡ ¶ô µÇ°í ÀÖ´Â °æ¿ì´Â true
,
¶ô µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â false
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
"¶ô µÇ°í ÀÖ´Ù" ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼´Â, À̰ÍÀº Ç×»ó
true
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.¶Ç "À̵¿ °¡´ÉÇÑ" ¿ÀºêÁ§Æ®ÀÇ °æ¿ì´Â
true
ȤÀº false
ÀÇ ¾î´ÀÂÊÀ̵çÀ» µ¹·ÁÁÝ´Ï´Ù.