>  기사  >  백엔드 개발  >  PHP 클래스 상수 정의 및 예제에 대한 자세한 설명

PHP 클래스 상수 정의 및 예제에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-05-04 10:39:361815검색

클래스 상수란 무엇인가요?

PHP에서는 값이 변하지 않는 양을 상수라고 이해하면 됩니다. 그러면 클래스 상수란 무엇일까요? 사실 클래스 상수도 이해하기 쉽습니다. 클래스 내에서 항상 변하지 않는 값을 상수라고 부를 수 있고, 이 상수를 클래스 상수라고 부를 수도 있습니다. 상수를 정의하고 사용할 때 "$" 기호를 사용할 필요가 없다는 점을 기억하세요.

클래스 상수는 객체 인스턴스가 아닌 클래스 자체에 속하며, 객체 인스턴스를 통해서는 접근할 수 없습니다

* public, protected, private, static으로 수정할 수 없습니다

* 하위 클래스를 재정의할 수 있음 상위 클래스에 상수를 작성하려면 (parent::)

를 통해 상위 클래스의 상수를 호출하면 됩니다. * PHP5.3.0부터는 변수를 사용하여 동적으로 클래스를 호출할 수 있습니다. . 그러나 이 변수의 값은 키워드(예: self, parent 또는 static)일 수 없습니다.

클래스 상수 정의

클래스 상수는 const 키워드를 사용하여 정의됩니다:

const 常量名 = 常量值

클래스 상수 정의 및 사용

<?php
header("content-type:text/html;charset=utf-8");
/**
 * PHP类常量
 *
 * 类常量属于类自身,不属于对象实例,不能通过对象实例访问
 * 不能用public,protected,private,static修饰
 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量
 * 自PHP5.3.0起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如self,parent或static)。
 */
class Foo
{
    // 常量值只能是标量,string,bool,integer,float,null,可以用nowdoc结构来初始化常量
    const BAR = &#39;PHP中文网&#39;;
    public static function getConstantValue()
    {
        // 在类的内部可以用self或类名来访问自身的常量,外部需要用类名
        return self::BAR;
    }
    public function getConstant()
    {
        return self::BAR;
    }
}
$foo = &#39;Foo&#39;;
echo $foo::BAR, &#39;<br />&#39;;
echo Foo::BAR, &#39;<br />&#39;;
$obj = new Foo();
echo $obj->getConstant(), &#39;<br />&#39;;
echo $obj->getConstantValue(), &#39;<br />&#39;;
echo Foo::getConstantValue();
?>

코드 실행 결과:

PHP 클래스 상수 정의 및 예제에 대한 자세한 설명

결과 위의 예에서는 하위 클래스를 사용하여 상위 클래스 상수를 다시 작성했습니다. 코드는 다음과 같습니다.

<?php
header("content-type:text/html;charset=utf-8");
/**
 * PHP类常量
 *
 * 类常量属于类自身,不属于对象实例,不能通过对象实例访问
 * 不能用public,protected,private,static修饰
 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量
 * 自PHP5.3.0起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如self,parent或static)。
 */
class Foo
{
    // 常量值只能是标量,string,bool,integer,float,null,可以用nowdoc结构来初始化常量
    const BAR = &#39;PHP中文网&#39;;
    public static function getConstantValue()
    {
        // 在类的内部可以用self或类名来访问自身的常量,外部需要用类名
        return self::BAR;
    }
    public function getConstant()
    {
        return self::BAR;
    }
}
$foo = &#39;Foo&#39;;
echo $foo::BAR, &#39;<br />&#39;;
echo Foo::BAR, &#39;<br />&#39;;
$obj = new Foo();
echo $obj->getConstant(), &#39;<br />&#39;;
echo $obj->getConstantValue(), &#39;<br />&#39;;
echo Foo::getConstantValue();
// 以上均输出PHP中文网
echo "<hr/>";
class Bar extends Foo
{
    const BAR = &#39;foo&#39;; // 重写父类常量
    public static function getMyConstant()
    {
        return self::BAR;
    }
    public static function getParentConstant()
    {
        return parent::BAR;
    }
}
echo Bar::getMyConstant(),&#39;<br/>&#39;; // foo
echo Bar::getParentConstant(); // PHP中文网
?>

코드 실행 결과:

PHP 클래스 상수 정의 및 예제에 대한 자세한 설명

추천 관련 기사:

정의에 대한 자세한 설명 PHP 상수 사용예

위 내용은 PHP 클래스 상수 정의 및 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.