PHP 마법 상수: 초보자 가이드
안녕하세요, PHP 프로그래밍에 도전하는 여러분! 오늘 우리는 PHP의 마법적인 세계로 접어들어 볼 거예요. 프로그래밍 초보자라도 걱정 마세요 - 이 여정에서 여러분의 친절한 안내자로서 모든 것을 단계별로 설명해 드릴게요. 그럼 가상의魔杖(또는 키보드)을 손에握고 시작해 볼까요!
마법 상수는 무엇인가요?
구체적인 내용에 들어가기 전에 마법 상수가 무엇인지 이해해 보겠습니다. 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