PHP에서 $ar[a] = 1 과 $ar['a'] = 1 이 차이가 있나요?

vudghkzm의 이미지

PHP에서 배열에서

$ar[a] = 1 과 $ar['a'] = 1

이 차이가 있나요?

우수한의 이미지

error_reporting(E_ALL); 을 넣어보시면 차이를 알 수 있을 겁니다.

우수하지 않아요. '우수한'은 옛날 만화 CityHunter에서 따와서 쓰던 별명. ;-)

익명 사용자의 이미지

<?php
define('a', 'merong');
$ar[a] = 1;
$ar['a'] = 1;
print_r($ar);
?>
ssehoony의 이미지

PHP 에서는
$ar[a] 처럼 사용하면
a 를 define 된 것으로 인식해서 a가 뭘로 define 되어 있는지 확인합니다.
그런데 a 가 define 되어 있지 않다면 문자열로 간주하고 처리합니다.

lifthrasiir의 이미지

비슷한 이유로 아래의 array 선언도...

$arr = array(
    alpha => 'blah',
    beta => 'blahblah',
);

요렇게 바꾸는 게 좋습니다.

$arr = array(
    'alpha' => 'blah',
    'beta' => 'blahblah',
);

개인적으로 php에서 가장 초난감한 behavior라고 생각합니다. :S

- 토끼군