소개
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