너의 개발은/PHP

PHP: 상수 (매직상수)

상수

상수를 선언하는 방법은 대략 두 가지의 방법이 있습니다. 하나는 조금은 고전적이고, 하나는 요즘 방식이라고 볼 수 있죠.

define

define 을 사용하면 상수를 정의할 수 있는데, 일반적인 스칼라 값이나 배열 또한 가능합니다. 이는 고전적인 방법으로 스코프의 제약을 받지 않으며, 함수의 내부에서 선언하든 밖에서 선언하든 전역적이라고 볼 수 있습니다. 이는 런타임에 정의됩니다.

Defines a named constant at runtime.
define('CONSTANT', 'Hello, world');

function foo()
{
    define('MESSAGE', 'Who are you?');
}

foo();
// -> Hello, world Who are you?
var_dump(CONSTANT, MESSAGE);

const

자바스크립트나 다른 언어들처럼 const 키워드를 사용하여 상수를 선언할 수 있습니다. 함수 내에서는 사용이 불가능합니다. 클래스 내부에서 프로퍼티 형태로 선언이 가능합니다. 이는 컴파일 타임에 정의됩니다.

As opposed to defining constants using define(), constants defined using the const keyword must be declared at the top-level scope because they are defined at compile-time.
const CONSTANT = 'Hello, world';

function foo()
{
    // -> syntax error
    // const MESSAGE = 'Who are you?';
}

// foo();

class MyClass
{
    public const MESSAGE = 'Who are you?';

    public static function foo()
    {
        // -> syntax error
        // const BYE = 'Bye';
    }
}

[ 'user' => $globalConstants ] = get_defined_constants(true);
var_dump($globalConstants, MyClass::MESSAGE);

Magic Constants

매직 상수는 일반적으로 메타적인 정보를 가지고 있습니다. 현재의 코드의 라인이나, 파일, 디렉토리, 함수나 메서드의 이름, 트레이트와 클래스의 이름 등이 있습니다. 이름에 __ 가 붙는 것이 특징입니다. __LINE__, __FILE__, __DIR__ 등이 있고 클래스, 함수, 메서드 등에선 다음과 같이 쓸 수 있습니다.

class A
{
    public function __construct()
    {
        // A
        var_dump(__CLASS__);
    }

    public function sayHello()
    {
        // A::sayHello
        return __METHOD__;
    }
}

var_dump((new A())->sayHello());

 

 

PHP 7+ 프로그래밍: 리부트 - 인프런

기초 문법부터 내장 함수, 웹 보안, 게시판 만들기까지 PHP 언어를 시작하는 분들을 위해 바이블이 될 수 있게 만들어보고자 하는 마음으로 이번 강좌를 만들어보았습니다. 입문 웹 개발 프로그��

www.inflearn.com

 

PHP 7+ 프로그래밍: 객체지향 - 인프런

PHP 객체지향, 내장 클래스, PSR, Composer, MVC(Model, View, Controller)까지 모던 PHP를 익히기 위한 근간을 이야기합니다. 초급 프로그래밍 언어 알고리즘 PHP 객체지향 알고리즘 온라인 강의 모던 PHP 프로��

www.inflearn.com

'너의 개발은 > PHP' 카테고리의 다른 글

PHP: 조건문 (if, switch)  (0) 2020.03.27
PHP: 연산자  (0) 2020.03.23
PHP: 상수 (매직상수)  (0) 2020.03.12
PHP: 변수 (가변 변수, 스코프, 슈퍼 글로벌 변수)  (0) 2020.03.09
PHP: 자료형  (0) 2020.03.07
PHP: 기본 문법  (0) 2020.03.06