PHP 5 Variables


변수(variables)는 정보를 저장하기 위한 "그릇(container)" 이다 :

Example

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

Run example »

대수(Algebra)와 마찬가지

x=5
y=6
z=x+y

대수에서 우리는 값을(5 같은) 저장하기 위해 문자를(x 같은) 사용합니다.

위의 식  z=x+y 에서,  z 의 값이 11로 계산될 수 있다.

PHP 에서 이 문자들은 변수(variables)라 부른다.

Note  변수를 데이터를 저장하기 위한 그릇으로 생각하시오.


PHP Variables

대수(algebra)와 마찬가지로, PHP 변수는 값(x=5) 또는 식(z=x+y)를 담을 수 있습니다.

변수는 짧은 이름(x 와 y 처럼​​) 이나 더 자세한 설명 이름(age, carname, total_volume)일 수 있습니다.

PHP 변수 규칙:

  • 변수는 변수명 앞에 $ 기호로 시작한다.
  • 변수 이름은 문자 또는 밑줄 문자로 시작해야 니다
  • 변수 이름은 숫자로 시작할 수 없습니다
  • 변수 이름은 영문자, 숫자와 밑줄( A-z, 0-9, 과 _ )을 사용한다.
  • 변수 이름은 대소 문자를 구분한다 ($y and $Y 두 개의 서로 다른 변수입니다)
Note  PHP 변수는 대소문자 구별(case-sensitive) 하는 것을 기억히시오..


PHP 변수 생성(선언)

PHP 는 변수선언에 대한 명령어가 없습니다.

변수는 값을 처음으로 할당하는 순간에 생성됩니다.:

Example

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

Run example »

위의 문장을 실행하면, 변수 txt는  Hello world! 라는 값을 갖게 되고, 변수 x 는 값 5 , 변수 y 는 값 10.5를 갖게 된다. 

Note: 변수에 텍스트 값을 할당할 경우, 값 주위에 따옴표(quotes)를 넣습니다.


PHP 는 느슨한 형식의 언어다

위의 예에서, 우리는 변수가 어떤 데이터 형식인지를 PHP 에게 말할 필요가 없음을 알 수 있습니다. 

PHP 는 자동적으로 그 값에 따라서 정확한 데이터 형식으로 변수를 변환합니다.

C, C++, 와 Java, 같은 다른 언어에서는, 프로그래머가 사용하기 전에 변수의 이름과 타입을 선언해야 합니다.


PHP 변수 범위(Scope)

PHP 에서, 변수는 스크립트의 어느 곳에서도 선언될 수 있다.

변수의 범위(scopes)는 변수가 사용 될/참조 될 수 있는 스크립트의 일정 부분을 말한다.  

PHP 는 세가지 다른 변수 범위를 갖는다.:

  • local
  • global
  • static

Local and Global Scope

함수 외부에 선언된 변수는 전역범위(GLOBAL SCOPE)를 가지며, 함수 외부에서만 접근할 수 있다.

함수 내부에 선언된 변수는 로컬범위(LOCAL SCOPE)를 가지며, 함수 내부에서만 접근 할 수 있다.

다음의 예에서 로컬범위와 전역범위의 변수를 시험합니다.:

Example

<?php
$x=5; // global scope

function myTest()
{
$y=10; // local scope
echo "<p>Test variables inside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
}

myTest();

echo "<p>Test variables outside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
?>

Run example »

위의 예에서, 두 변수 $x 와 $y, 그리고 함수 myTest() 가 있습니다. $x 는 함수 외부에 선언 되어 있으므로 전역변수(global variable)이며, $y 는 함수 내부에 선언되어 있으므로 지역변수(local variable) 이다.

myTest() 함수 내부에서 두 변수를 출력하면, 지역적으로 선언된 $y 값은 출력하지만, 함수외부에서 생성된 $x 의 값은 출력할 수 없습니다. 

다음, myTest() 함수 외부에서 두 변수를 출력하면, $x 의 값은 출력하지만, myTest() 함수 내부에서 생성되어 지역변수인 $y 의 값은 출력 될 수 없다. 

Note  지역 변수는 그것이 선언된 함수에서만 인식되기 때문에 서로 다른 함수에 같은 이름의 지역변수를 가질 수 있다. 


PHP global Keyword

global 키워드는 함수 내부에서 전역변수(global variable)를 접근하는 데 사용된다. 

이렇게 하려면, (함수 안에서) 변수 앞에 global 키워드를 사용한다.:

Example

<?php
$x=5;
$y=10;

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // outputs 15
?>

Run example »

PHP 는 $GLOBALS[index] 라는 배열에 모든 전역변수(global variables)들을 저장한다. index 는 변수 이름을 말하며, 이 배열은 함수 내부에서도 접근이 가능하며, 전역변수(global variables)를 업데이트 하는데도 사용될 수 있다. 

위의 예는 다음과 같이 다시 쓸 수 있다.:

Example

<?php
$x=5;
$y=10;

function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest();
echo $y; // outputs 15
?>

Run example »


PHP static Keyword

일반적으로 함수의 실행이 완료되면 그 모든 변수는 삭제됩니다. 하지만, 때때로 지역변수가 지위지지 않기를 원할 경우(더 다른 작업을 위해 필요한 경우)도 있습니다.

이를 위해서는,  변수를 처음 선언할 때  static  키워드를 사용합니다.:

Example

<?php

function myTest()
{
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>

Run example »

그러면, 함수가 호출 될 때마다, 함수가 이전에 호출 되었을 때 변수가 가지고 있어던 정보를 여전히 가질 것입니다.  

Note: 변수는 여전히 함수에 대하여 로컬범위 입니다.