PHP 마법 상수: 초보자 가이드

안녕하세요, PHP 프로그래밍에 도전하는 여러분! 오늘 우리는 PHP의 마법적인 세계로 접어들어 볼 거예요. 프로그래밍 초보자라도 걱정 마세요 - 이 여정에서 여러분의 친절한 안내자로서 모든 것을 단계별로 설명해 드릴게요. 그럼 가상의魔杖(또는 키보드)을 손에握고 시작해 볼까요!

PHP - Magic Constants

마법 상수는 무엇인가요?

구체적인 내용에 들어가기 전에 마법 상수가 무엇인지 이해해 보겠습니다. PHP에서 마법 상수는 사용된 위치에 따라 값이 바뀌는 사전 정의된 상수입니다. 이들은 두 개의 이스터라인(__)으로 시작하고 끝납니다. 마법의 주문 같은 것들이 코드에 대한 정보를 밝혀줍니다!

이제 이 마법 상수들을 하나씩 탐구해 보겠습니다.

LINE

__LINE__ 마법 상수는 이 상수가 나타나는 파일의 현재 줄 번호를 알려줍니다.

<?php
echo "This is line number " . __LINE__ . "<br>";
echo "And this is line number " . __LINE__ . "<br>";
?>

이 코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

This is line number 2
And this is line number 3

이게 멋지지 않나요? 코드에 내장된 줄 수 카운터 같은东西이죠!

FILE

__FILE__는 현재 파일의 전체 경로와 파일명을 제공합니다. PHP 파일의 GPS 같은 것입니다!

<?php
echo "The full path of this file is: " . __FILE__;
?>

이 outputs는 다음과 같을 수 있습니다:

The full path of this file is: C:\xampp\htdocs\myproject\example.php

DIR

__DIR____FILE__와 비슷하지만, 파일명이 아닌 파일의 디렉토리만을 제공합니다.

<?php
echo "This file is in the directory: " . __DIR__;
?>

출력은 다음과 같을 수 있습니다:

This file is in the directory: C:\xampp\htdocs\myproject

FUNCTION

이 마법 상수는 현재 함수의 이름을 알려줍니다. 함수의 이름표 같은 것입니다!

<?php
function greet() {
echo "This function is called: " . __FUNCTION__;
}

greet();
?>

출력:

This function is called: greet

CLASS

__CLASS__는 현재 클래스의 이름을 밝혀줍니다. 클래스에게 "이름이 뭐야?"라고 묻는 것 같은 것입니다.

<?php
class MyClass {
public function getClassName() {
return __CLASS__;
}
}

$obj = new MyClass();
echo $obj->getClassName();
?>

출력:

MyClass

METHOD

__METHOD__는 클래스 이름과 메서드 이름을 모두 제공합니다. 메서드의 이름과 성을 동시에 얻는 것 같은 것입니다!

<?php
class MyClass {
public function myMethod() {
echo __METHOD__;
}
}

$obj = new MyClass();
$obj->myMethod();
?>

출력:

MyClass::myMethod

TRAIT

Traits는 PHP에서 코드 재사용을 위한 메커니즘입니다. __TRAIT__ 상수는 트레이트의 이름을 제공합니다.

<?php
trait MyTrait {
public function traitName() {
echo __TRAIT__;
}
}

class MyClass {
use MyTrait;
}

$obj = new MyClass();
$obj->traitName();
?>

출력:

MyTrait

NAMESPACE

네임스페이스를 사용하고 있다면 (__NAMESPACE__는 클래스의 성 같은 것입니다), 현재 네임스페이스를 알려줍니다.

<?php
namespace MyProject;

echo "Current namespace: " . __NAMESPACE__;
?>

출력:

Current namespace: MyProject

ClassName::class

이건 정확히 마법 상수는 아니지만, 매우 유용한 기능입니다. 네임스페이스와 함께 작업할 때 완전한 클래스 이름을 제공합니다.

<?php
namespace MyProject;

class MyClass {}

echo MyClass::class;
?>

출력:

MyProject\MyClass

마법 상수 간단한 정리

이제 우리가 배운 모든 마법 상수를 요약하는 유용한 표를 제공합니다:

마법 상수 설명
LINE 현재 줄 번호
FILE 파일의 전체 경로와 파일명
DIR 파일의 디렉토리
FUNCTION 현재 함수의 이름
CLASS 현재 클래스의 이름
METHOD 현재 메서드의 이름
TRAIT 현재 트레이트의 이름
NAMESPACE 현재 네임스페이스의 이름

이제 여러분은 PHP의 마법 상수에 대해 배웠습니다. 이 작은 기적들은 디버깅을 할 때나 코드가 어디에서 실행되고 있는지 더 잘 알고 싶을 때 매우 유용할 수 있습니다.

기억해 두세요, 프로그래밍은 새로운 언어를 배우는 것과 같아요 - 연습이 필요합니다. 이 상수들을 실험해 보지 마세요. 다양한 스크립트의 다른 부분에서 사용해 보고 어떤 일이 일어나는지 확인해 보세요. 이 상수들을 더 많이 사용할수록 더 편안해질 것입니다.

행복한 코딩을 기원하며, PHP의 마법이 여러분과 함께 하길 바랍니다!

Credits: Image by storyset