PHP - 전역 변수: 초보자를 위한 종합 가이드

안녕하세요, PHP 개발자 지망생 여러분! PHP 전역 변수의 세계로 여러분을 안내하게 되어 매우 기쁩니다. 프로그래밍을 가르친 지 오래된 저는 전역 변수를 이해하는 것이 PHP 프로그래머로서 능숙해지는 중요한 단계라 확신합니다. 그麼, 시작해보겠습니다!

PHP - Global Variables

전역 변수는 무엇인가요?

먼저 기본 개념부터 알아보겠습니다. PHP에서 전역 변수는 스크립트의 어디서든 접근할 수 있는 변수입니다. 그것을 상상하면, PHP 나라의 모든 구석구석에 정보를 전달할 수 있는 대표적인 전 messanger라고 할 수 있습니다!

예제 1: 전역 변수 선언 및 접근

간단한 예제를 보겠습니다:

<?php
$name = "Alice"; // 이는 전역 변수입니다

function sayHello() {
global $name; // 함수 내에서 전역으로 선언해야 합니다
echo "Hello, $name!";
}

sayHello(); // 출력: Hello, Alice!
?>

이 예제에서, 우리는 어떤 함수 밖에서 전역 변수 $name을 선언했습니다. sayHello() 함수 내에서 사용하기 위해서는 global 키워드를 사용해야 합니다. 이는 PHP에게 우리가 전역 변수版의 $name을 사용하고 싶어한다는 것을 알리는 것입니다.

전역 변수의 힘

전역 변수는 스크립트의 다른 부분 간에 데이터를 공유할 때 매우 유용할 수 있습니다. 하지만 강력한 힘에는 큰 책임이 따릅니다! 또 다른 예제를 통해 전역 변수의 강력하고 잠재적으로 어려운 측면을 살펴보겠습니다.

예제 2: 여러 함수에서 전역 변수 사용

<?php
$counter = 0; // 전역 변수

function incrementCounter() {
global $counter;
$counter++;
}

function displayCounter() {
global $counter;
echo "The counter is at: $counter";
}

incrementCounter();
incrementCounter();
displayCounter(); // 출력: The counter is at: 2
?>

이 예제에서, 우리는 두 개의 다른 함수에서 전역 변수 $counter를 사용하고 있습니다. 두 함수 모두 동일한 변수를 수정하고 접근할 수 있어 매우 편리합니다. 하지만 이 방법을 과도하게 사용하면 코드가 이해하기 어려워지고 유지보수가 어려워질 수 있습니다.

$GLOBALS 배열: 전역 변수의 슈퍼 헴러

이제 PHP의 특별한 도구를 소개해드리겠습니다: $GLOBALS 배열입니다. 이 것은 모든 전역 변수를 보관하는 보물 상자 같은 것으로, global 키워드를 사용하지 않고도 접근할 수 있습니다. 그麼, 어떻게 작동하는지 보겠습니다!

예제 3: $GLOBALS 배열 사용

<?php
$fruit = "apple"; // 전역 변수

function changeFruit() {
$GLOBALS['fruit'] = "banana";
}

echo $fruit; // 출력: apple
changeFruit();
echo $fruit; // 출력: banana
?>

이 예제에서, 우리는 함수 내에서 전역 변수 $fruit의 값을 변경하고 있습니다. global 키워드를 사용하지 않고 $GLOBALS 배열을 통해 접근하고 있습니다. 마치 모든 전역 변수에 대한 마스터 키를 가지고 있는 것과 같습니다!

전역 변수 실전 사용 사례

이제 실제적인 예제로 우리의 지식을 테스트해보겠습니다. 간단한 쇼핑 카트 시스템을 구축하는 것을 상상해봅시다.

<?php
$cartTotal = 0; // 쇼핑 카트 전체 금액을 위한 전역 변수

function addToCart($price) {
global $cartTotal;
$cartTotal += $price;
echo "Item added. New total: $" . number_format($cartTotal, 2) . "\n";
}

function applyDiscount($percentage) {
global $cartTotal;
$discount = $cartTotal * ($percentage / 100);
$cartTotal -= $discount;
echo "Discount applied. New total: $" . number_format($cartTotal, 2) . "\n";
}

addToCart(29.99);
addToCart(49.99);
applyDiscount(10);
?>

이 예제는 전역 변수가 실제 애플리케이션에서 상태를 유지하는 데 어떻게 유용할 수 있는지 보여줍니다.

다른 PHP 스크립트 포함

PHP의 훌륭한 기능 중 하나는 코드를 여러 파일로 나누고 필요할 때 포함시킬 수 있다는 것입니다. 이는 전역 변수가 빛을 발하는 부분입니다! 그幺, 어떻게 작동하는지 보겠습니다.

예제 4: 파일 간 전역 변수 사용

먼저 config.php라는 파일을 만들어보겠습니다:

<?php
// config.php
$siteTitle = "My Awesome PHP Site";
$currentYear = date("Y");
?>

이제 메인 파일 index.php를 만들어보겠습니다:

<?php
// index.php
include 'config.php';

echo "<h1>$siteTitle</h1>";
echo "<p>Welcome to our site! It's currently $currentYear.</p>";
?>

config.phpindex.php에 포함시키면, config.php에 정의된 모든 전역 변수가 index.php에서 사용할 수 있습니다. 이는 전체 PHP 애플리케이션에서 설정과 공유 변수를 관리하는 강력한 방법입니다.

최선의 관행과 경고

전역 변수는 유용하지만, 신중하게 사용해야 합니다. 다음은 몇 가지 팁입니다:

  1. 필요할 때만 전역 변수를 사용하십시오.
  2. 대안 방법으로 변수를 함수 매개변수로 전달하는 것을 고려하십시오.
  3. 전역 변수를 과도하게 사용하면 디버깅과 유지보수가 어려워질 수 있습니다.

결론

축하합니다! 전역 변수를 마스터하면서 PHP 여정에서 큰 걸음을 뗀 것입니다. 기억하십시오, 강력한 도구는 지혜롭게 사용해야 합니다. PHP 개발자로서 계속 학습하고 성장함에 따라, 언제와 어떻게 전역 변수를 최선의 방법으로 사용할 수 있는 감각을 기를 수 있을 것입니다.

계속 연습하고, 호기심을 유지하며, 행복하게 코딩하세요!

방법 설명
global 키워드 함수 내에서 전역 변수에 접근하기 위해 사용
$GLOBALS 배열 전역 변수에 대해 global 키워드를 선언하지 않고 접근할 수 있게 해줌
include 하나의 PHP 스크립트를 다른 스크립트에 포함시키기 위해 사용, 전역 변수를 공유

Credits: Image by storyset