가변 변수

PHP에서는 변수의 타입을 지정하고 사용하는 언어가 아니기 때문에 변수의 타입 때문에 고생할 시간을 줄일 수 있죠. 각 변수를 정의할 때 사용하는 값이 그 변수의 타입을 결정하게 됩니다.

<?php
    $alpha = 1;
?>

위의 코드에서 변수 alpha는 1이라는 값을 가진 상수 타입의 변수로 정해집니다. (C언어와 같은)다른 언어와 달리 int $alpha=1; 처럼 직접 변수의 타입을 지정하지 않습니다.

PHP 언어는 코드 내에 사용되지 않은 변수가 나온다면 바로 새로운 변수로 정의됩니다. 그래서 약간 특이한 방식의 변수 정의도 가능합니다.

<?php
    $alpha = "beta";
    $$alpha = "gamma";
    $$$alpha = "delta";
?>

이번 코드에서 변수 alpha는 단어 beta를 가진 문단 타입의 변수로 정해집니다. 변수 alpha의 타입을 직접 변경할 필요 없이 값을 지정하는 것만으로 타입이 달라집니다.

더욱 신경써야 할 부분은 두 개 이상의 달러 표시를 가진 변수입니다.

$$alpha = $ + "beta" = $beta
$$$alpha = $$ + "beta" = $$beta = $ + "gamma" = $gamma

변수 내 단어는 그 앞에 달러 표시가 있다면 바로 가변 변수로 사용이 가능합니다.

<?php
    $orderArray = array( "alpha", "beta", "gamma" );
    $order_alpha = "apple";
    $order_beta = "banana";
    $order_gamma = "cherry";


    foreach($orderArray as $type)
        echo ${"order_$type"} . "<br />";
?>

특이한 변수 정의에 대한 응용입니다. 각 단어는 order_alpha, order_beta, order_gamma가 되고 apple, banana, cherry가 결과물로 출력됩니다.