soominkim Study
article thumbnail
Published 2023. 2. 27. 23:00
[PHP] PHP 변수 PHP
728x90

 

변수(variable)는 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간입니다. 즉 변수란 데이터를 저장할 수 있는 메모리 공간이며 저장된 값은 변경될 수 있습니다.

 

PHP에서는 달러($) 기호를 사용하여 변수를 선언합니다.

$변수이름 = 초기값;

PHP는 C언어를 기반으로 만들어졌지만 변수선언에서 차이점을 보입니니다. 바로 변수의 선언에 타입을 명시하지 않습니다. PHP의 변수 타입은 변수에 대입하는 값에 따라 자동으로 결정됩니다.  

변수 이름 생성 규칙은 다음을 따릅니다.

 

1. 영문 대소문자, 숫자, 언더스코어(_)로만 구성됩니다.

2. 숫자로 시작할 수 없습니다.

3. 공백을 포함할 수 없습니다.

4. PHP에서 미리 정의한 $this는 사용할 수 없습니다.

5. 대소문자를 구분합니다.

 

1. 변수의 종류

PHP에서 변수는 스크립트 내 어느 곳에서나 선언할 수 있습니다. 변수의 유효 범위(varialbe scope)란 특정 볌수를 참조되거나 사용할 수 있는 스크립트 내의 범위를 말합니다. PHP는 이러한 변수의 유효 범위에 따라 종류를 다음과 같이 구분할 수 있습니다.

 

1-1. 지역 변수(local variable)

다음과 같이 함수 내부에서 선언된 변수를 지역 변수라고 합니다. 함수 내부에서 선언된 변수는 오직 함수 내부에서만 접근할 수 있습니다.

<?php
function home(){
    $text = "Hello, PHP";
    echo $text;
}
home()
?>

1-2. 전역 변수(global variable)

다음과 같이 함수 외부에서 선언된 변수를 전역 변수라고 합니다. 함수 외부에서 선언된 변수를 함수 내부에서 접근하고자 할 때는 global 키워드를 함께 사용해야합니다. 

<?php
$var = 10;
function home(){
    global $var;
    echo $var;
}
home();
echo $var;
?>

PHP는 모든 전역변수를 $GLOBALS 배열에 저장합니다. 이 배열의 인덱스로 변수의 이름을 사용하면 해당 전역 변수의 값에 접근할 수 있습니다. 이 배열은 함수 내부에서도 접근이 가능하며 이 배열을 통해 바로 전역 변수의 값을 변경할 수도 있습니다.

<?php
$var = 10;
function home(){
    echo $GLOBALS['var'];
}
home();
echo $var;
?>

1-3. 정적 변수(static variable)

정적 변수는 함수 내부에서 static 키워드로 선언한 변수를 말합니다. 정적 변수는 함수의 호출이 종료되더라도 메모리상에서 지워지지 않습니다. 그러나 지역 변수처럼 해당 함수 내부에서만 접근할 수 있습니다.

<?php
function home(){
   static $count = 1;
   echo $count;
   $count++;
}
home();
home();
home();
home();
?>

 

2. 슈퍼 글로벌(superglobal)

PHP는 미리 정의된 전역 변수인 슈퍼 글로벌을 제공합니다. 이러한 슈퍼 글로벌은 특별한 선언없이 스크립트 내의 어디에서라도 바로 사용할 수 있습니다.  대표적인 슈퍼 글로벌은 다음과 같습니다.

$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV

 

3. 기본 타입

타입(data type)이란 언어에서 다룰 수 있는 값의 종류를 의미합니다. 혹은 프로그램에서 다룰 수 있는 값의 종류입니다.

PHP에서는 여러가지 형태의 타입을 미리 정의하여 제공하고 있습니다.

불리언(boolean)
정수(integer)
실수(float)
문자열(string)
배열(array)
객체(object)
리소스(resource)
NULL

3-1. 배열(array)

PHP에서 배열은 한 쌍의 키(key)와 값(value)으로 이루어진 맵(map)으로 구성되는 순서가 있는 집합을 의미합니다. 맵의 키값으로는 정수 문자열만이 가능하며 하나의 배열에 두 가지 키값을 같이 사용할 수 있습니다.

 

3-2. 객체(object)

객체는 클래스의 인스턴스(instance)를 저장하기 위한 타입입니다. 이 객체는 프로퍼티(properties)와 메소드(methods)를 포함할 수 있습니다.

 

3-3. 리소스(resource)

리소스는 PHP 외부에 존재하는 외부 자원을 의미합니다. 이러한 리소스는 데이터베이스 함수 등에서 데이터베이스 연결등을 반환할 때 사용됩니다.

 

3-4. NULL

NULL은 오직 한가지 값(NULL 상수)만을 가질 수 있는 특별한 타입입니다. NULL 타입의 변수란 아직 어떠한 값도 대입되지않은 변수를 의미합니다.

 

 

[PHP] PHP 개요

PHP란? PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어입니다. PHP는 동적 웹 페이지를 쉽고 빠르게 만들 수 있도록 해주는 데 그 목적이

soominkim.tistory.com

 

728x90

'PHP' 카테고리의 다른 글

[PHP] 기타 제어문과 연관 배열  (0) 2023.03.02
[PHP] PHP 연산자 (2)  (0) 2023.02.28
[PHP] PHP 연산자 (1)  (0) 2023.02.28
[PHP] PHP 상수  (0) 2023.02.28
[PHP] PHP 개요  (0) 2023.02.27
profile

soominkim Study

@soominkim

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그