소개
PHP는 클래스의 식별자가 클래스별로 변경되지 않은 상수 값을 갖도록 정의할 수 있습니다. 클래스 내에서 변수 또는 속성을 구별하기 위해 상수 이름 앞에 $ 기호가 붙지 않고 다음과 같이 정의됩니다. 상수 예선.
다른 수정자가 정의에 사용될 수 있지만 상수의 기본 가시성은 공개입니다. 상수의 값은 변수나 함수 호출/속성이 아닌 특정 표현식이어야 합니다. 범위 확인 연산자를 사용하여 클래스 이름을 통해 상수 값에 액세스합니다. self를 통해 참조할 수 있지만 메서드 내부 변수
구문
class SomeClass{ const CONSTANT = 'constant value'; } echo SomeClass::CONSTANT;
상수 이름은 대소문자를 구분합니다. 일반적으로 상수 이름은 대문자로 지정됩니다.
클래스 상수 예제
이 예제는 클래스 상수가 어떻게 정의되고 액세스되는지 보여줍니다.
예시
<?php class square{ const PI=M_PI; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
출력
그러면 다음과 같은 결과가 생성됩니다. -
PI=3.1415926535898 area=78.539816339745
표현식으로서의 클래스 상수
이 예에서 클래스 상수에는 표현식이 할당됩니다.
예시
<?php const X = 22; const Y=7; class square { const PI=X/Y; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
외부
그러면 다음과 같은 결과가 생성됩니다. -
PI=3.1428571428571 area=78.571428571429
클래스 상수 가시성 수정자
예시
<?php class example { const X=10; private const Y=20; } $s1=new example(); echo "public=". example::X. "\n"; echo "private=" . $s1->Y ."\n"; echo "private=" . $example::Y ."\n"; ?>
출력
그러면 다음과 같은 결과가 생성됩니다. -
1public=10 PHP Notice: Undefined property: example::$Y in line 11 private=PHP Fatal error: Uncaught Error: Cannot access private const example::Y