R's Hacking Daily Log

php 변수 다루기 (1) 본문

PHP

php 변수 다루기 (1)

hanhxx 2023. 6. 29. 16:01

Step 1 :: 변수 만들기 

변수를 만들기 위해서는 (1) 변수명과 (2) 변수에 넣을 값이 필요하다!

변수에 값을 넣기 위해서는 변수명이 왼쪽, 값이 오른쪽에 위치해야한다.

 

$name = "";

우선, $표시로 name이라는 변수를 "선언"해준다.

PHP는 C언어와 달리 변수를 선언할 때 데이터 타입을 굳이 지정하기 않아도 된다. 

 

현재 시점에서는 name이라는 변수를 만들기만 했을 뿐 아무것도 들어있지 않은 상태임을 알 수 있다.

그렇다면 값을 한 번 넣어보자.

 

$name = "bluePhone"

위에 보이는 코드 한 줄로 name이라는 변수에 "bluePhone"이라는 값을 "할당"했다.

실제로 name에 bluePhone이라는 값이 들어갔는 지 확인하기 위해서 name 값을 출력해 보자!

 

echo $name;

echo라는 keyword를 사용해서 변수를 출력해 주면 "bluePhone"이 결과로 나오는 걸 볼 수 있다.

이렇게 변수명을 가져와 값을 가리키는 것을 "참조한다"라고 한다. 

 

 

 


Step 2 :: 변수 출력하기 

Step1에서는 우리의 첫 번째 변수를 만들고 그 값을 출력해보기까지 했다!

 

echo $VARIABLE_NAME

echo keyword에 변수명이 따라붙는 아주 간단한 문법으로 값을 출력해 보았는 데 

여기에 더불어 2가지 형태의 출력 방법도 가볍게 살펴보도록 하자. 

 

 

echo "hello World!! {$txt} <br/>";

만약 변숫값을 문자열 중간에서 출력하고 싶다면 위와 같이 $변수명을 " { } " 중괄호로 감싸주면 된다.

 

 

echo 'hello world!! '.$txt.'!!';

또는 문자열은 ' ' 따옴표로 묶어주고 " . " 문자 결합 연산자를 이용해 $txt를 연결해 주면 된다. 

 

 

$var = "message";
$$var = "Hello world~";
echo $message;

마지막으로 살펴볼 형태는 가변 변수라는 개념이 등장한다.

결과를 보기 전에 위의 코드를 먼저 살펴보면 뜬금없이 $message라는 변수가 튀어나온 걸 볼 수 있다.

 

첫 번째 줄에서는 $var, 두 번째 줄에서는 $$var이라는 변수가 만들어졌다.

이때 " $ "표시를 두 개 사용한 변수를 가변 변수라고 한다.

 

 

가변 변수는 선언할 때 다른 변수의 값자신의 변수명으로 대체할 수 있는 걸 의미한다.

그 말은 즉슨, 

$$var = "Hello world~"
$($var) = "Hello world~"     #$var = "message"
$message = "Hello world~"

 

$var 변수의 값인 "message"$($var) 자리로 들어가 $$var이라는 변수명이 $message로 대체된 것이다.

그렇다 보니 $message라는 변수를 출력시키면 "Hello world~"가 결과로 나오는 걸 볼 수 있다. 

 

 

 

 

[ 전체 코드 ]

<?php
$txt = "PHP";
echo "hello World!! {$txt}<br/>";
echo 'hello world!! '.$txt.'!!';

$var = "message";
$$var = "Hello world~";
echo $message;
?>

두 번째 줄을 보면 txt라는 이름을 가진 변수에 "PHP"를 할당해주고 있다.

이는 변수를 선언하는 단계를 건너뛰고 바로 값을 할당할 수 있음을 보여주기도 한다. 

 

마지막 줄에 있는 ?> 태그는 첫 번째 줄에서 나온 <?php에 대한 닫힘 태그인데 

닫힘 태그는 생략이 가능하다는 점!

'PHP' 카테고리의 다른 글

php 연산자 다루기 (2)  (0) 2023.07.02
php 연산자 다루기 (1)  (1) 2023.07.01
php 데이터 타입  (0) 2023.06.30
php 상수 다루기  (0) 2023.06.30
php 변수 다루기 (2)  (0) 2023.06.29
Comments