PHP 변수 구성 및 변수명 지정 조건 예제 살펴보기

PHP 변수

PHP 변수 의미는 메모리(memory) 공간입니다. 변수는 데이터를 저장할 수 있도록 메모리 구역에 이름을 붙여둔 것을 말합니다.

이름이 변수인 이유는 컴퓨터 작업중에서 저장 공간에 들어있는 데이터(변수값) 또는 변수명을 변경할 수 있기 때문입니다.

변수의 구성

변수는 저장 공간이므로 저장 공간의 이름과 저장 공간에 들어있는 데이터가 있을 것입니다.

저장 공간의 이름을 변수명이라고 부릅니다. 들어있는 데이터를 변수값이라 부릅니다. 윈도우 운영체제로 생각을 해보면 변수명은 새폴더의 이름입니다. 변수값은 폴더 안에 들어있는 파일입니다.

PHP-Variable-11

변수값은 단 하나

윈도우와 변수의 차이점이 있다면, 윈도우 폴더에는 여러 파일이 들어갈 수 있습니다. 하지만 변수명에는 단 하나의 변수값만 들어갈 수 있습니다.

변수값이 다른 변수값으로 교체될 수는 있어도 하나의 변수 폴더 여러 변수값이 들어갈 수는 없습니다.

PHP 변수 선언 : 변수명 및 변수값 설정

그림으로 살펴봤던 변수명과 변수값은 실제 코드로 어떻게 구현해야 할까요?

$x = 99;

PHP에서 변수명은 달러 $ 기호를 변수명 앞에 붙이면 됩니다. 변수값은 변수명 뒤에 등호 = 와 함께 입력하면 됩니다.

<?php
     $x=99;
?>

예시의 의미는 변수명을 $x로 선언한 것이고, 변수값을 99로 입력한 것입니다.

PHP-Variable-12

PHP 변수 출력

echo 명령어를 이용하면 변수를 출력해볼 수 있습니다. 예시의 의미는 변수명 $x에 들어있는 변수값을 화면에 출력하라는 의미입니다.

$x에 들어있는 변수값은 5이므로 화면에 5를 출력하게 됩니다.

<?php
     $x=5;
     echo $x;
?>

결과

5

PHP 변수명 짓기

변수명에 들어갈 이름 지정에는 몇 가지 조건이 있습니다. 허용불가란 변수명에 지정이 안될 뿐이지 다른 연산에는 사용될 수 있습니다.

허용 문자

PHP 변수명은 일반 알파벳, 숫자, 언더바 _와 유니코드 특수 기호 등이 가능합니다.

  • 알파벳 대문자 : A, B, C ~ X, Y, Z
  • 알파벳 소문자 : a, b, c ~ x, y, z
  • 아라비아 숫자 : 0, 1, 2 ~ 8, 9
  • 언더바 _
  • 특수 기호(UTF-8)

허용 불가 문자

몇몇 특수 문자의 경우 일반 연산 등에는 사용될 수 있지만 변수명에는 사용될 수 없습니다.

  • 하이픈 -
  • 특수 문자 : ~ ! @ # % ^ & * ( + = | \ { [ : ; " ' < / ?

첫 글자 허용 예시

변수명 첫 글자는 문자 또는 언더바 _만 올 수 있습니다. 물론 한글이나 특수문자는 UTF-8 환경 지원시 사용가능합니다. 하지만 다양한 환경에서 호환성이 떨어질 수 있으므로 영문이나 언더바 _를 이용하는 것이 안전합니다.

  • $mybear
  • $_faker
  • $안녕
  • $ⓓ

첫 글자 불가 예시

숫자, 하이픈 -은 변수명 첫 글자로 올 수 없습니다.

  • $99;
  • $8bear;
  • $-night;

숫자 변수명

숫자로 변수명을 만들고 싶은 경우 숫자 앞에 언더바 _를 앞에 붙이면 됩니다.

<?php
     $_1994="안녕하세요!";
     echo $_1994;
?>

결과

안녕하세요!

대문자 vs 소문자

PHP 변수명은 대문자와 소문자를 서로 다른 변수명으로 인식합니다.
아래 예시는 전부 다른 변수를 지칭합니다.

<?php
     $AB=1;
     $Ab=2;
     $aB=3;
     $ab=4;
     echo $AB;
     echo $Ab;
     echo $aB;
     echo $ab;
?>

결과

1234

사용 자제 변수명 일람

PHP에서 이미 기능을 하고 있는 함수 등을 변수명으로 사용을 할 수는 있습니다. 하지만 가독성이나 의사결정에 악영향을 끼치므로 사용을 자제하는 것이 좋습니다.

PHP 키워드 목록
abstract and array as break
case catch class clone const
continue declare default do else
elseif enddeclare endfor endforeach endif
endswitch endwhile extends final for
foreach function global goto if
implements interface instanceof namespace new
or private protected public ststic
switch throw try use var
while xor __DIR__ __FILE__ __FUMCTION__
__CLASS__ __METHOD
die echo empty exit eval
include include_once isset list require
require_once return print unset

PHP 변수값 종류

앞서 살펴본 내용은 변수명이었습니다. 변수명에 들어갈 데이터를 변수값이라 부릅니다. 변수값에 들어가는 데이터의 종류를 지정하는 것을 자료형이라 부릅니다.
프로그래밍 언어마다 약간의 차이점이 있습니다. 그러나 대부분 문자형 데이터, 숫자형 데이터, 논리형 데이터, 배열형 데이터 등으로 구분됩니다.

PHP는 변수값의 자료형을 설정하는 일이 다른 언어보다 쉬운편입니다. 그럼에도 왜 아무 데이터를 넣지 않고 자료형태를 조절해서 넣을까요? 그 이유는 컴퓨터의 저장 공간은 메모리라는 물리적 한계를 가지고 있기 때문입니다.
옷장에 옷을 넣을 때 종류별로 크기별로 분류를 해서 넣듯 메모리에도 데이터를 용량이나 용도별로 구분을 해놓아야 효과적으로 공간을 사용할 수 있습니다.

참조