PHP 상수 정리

2022. 6. 25. 21:03·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 > 기초' 카테고리의 다른 글

PHP 함수 정리  (0) 2022.06.29
PHP 연산자 정리  (0) 2022.06.25
PHP 변수 정리  (0) 2022.06.25
PHP 자료형 정리  (0) 2022.06.20
PHP 배열(array) 기초 정리  (1) 2022.06.18
'PHP/기초' 카테고리의 다른 글
  • PHP 함수 정리
  • PHP 연산자 정리
  • PHP 변수 정리
  • PHP 자료형 정리
99C0RN
99C0RN
1990.09.17
  • 99C0RN
    넌 잘하고 있어
    99C0RN
  • 전체
    오늘
    어제
    • -
      • IT
        • 잔기술
        • 네트워크
        • 면접 예상 질문
      • JAVA
        • 알고리즘
        • 기타
      • PHP
        • 기초
      • C#
        • 기초
      • 개발메모
        • 간단정리
        • WEB
        • 면접준비
        • 기타
      • 블랙홀
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • forl
  • 공지사항

  • 인기 글

  • 태그

    Algorithm
    JavaScript
    graphQL
    JDK Dynamic Proxy
    web
    선택정렬
    php
    git svn 차이
    Queue
    c#
    springboot + graphql
    vParam
    stack
    https status code
    기본문법 정리
    console.table()
    php 배열관련 함수
    Java
    자바
    웹개발
    http 상태
    HTTP
    문자열 대표 클래스
    sort
    SERVER 환경변수
    알고리즘
    OpenFeign
    docker
    JsonVue
    격리수준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
99C0RN
PHP 상수 정리
상단으로

티스토리툴바