메모리에서 사용되는 상수와 변수를 비교하려고 시도했지만 이상한 현상이 발견되었습니다.상수는 정의되었지만 메모리는 변경되지 않았습니다.
테스트 코드 : 당신은 정확히 아무것도 안하고하지 않는
<?php
var_dump(memory_get_usage()); // int(129100)
// I don't understand: I don't do someting but why there has the changed
var_dump(memory_get_usage()); // int(129156)
var_dump(memory_get_usage()); // int(129156)
define('hello', 'WORLD');
// why here hasn't changed
var_dump(memory_get_usage()); // int(129156)
$hello = 'WORLD';
var_dump(memory_get_usage()); // int(129304)
?>
define을 사용하면 평가하기 전에 코드의 값을 대체한다는 점에서 C의 #define과 매우 유사하게 동작합니다. 나는 새로운 메모리 블록 대신 인터프리터에 이미 할당 된 메모리 블록에 정보를 저장한다고 가정합니다. – Matt