>백엔드 개발 >PHP 튜토리얼 >PHP의 상수, 정적 속성, 비정적 속성의 차이점

PHP의 상수, 정적 속성, 비정적 속성의 차이점

墨辰丷
墨辰丷원래의
2018-05-24 10:00:161701검색

이 글은 주로 PHP 클래스의 상수, 정적 속성, 비정적 속성의 차이점과 소개를 소개합니다. 필요한 친구들이 참고하면 됩니다

1. 클래스 상수: 클래스에서 항상 변하지 않는 값은 상수로 정의됨

클래스 상수는 공개적이고 상속 가능하며 하위 클래스로 재정의될 수 있습니다. 클래스 상수에 액세스하려면 이중 콜론::을 사용해야 합니다. , 상수이기 때문에 변수 $를 나타내는 기호를 이름에 사용할 수 없습니다.

클래스 내에서 항상 변하지 않는 값을 상수로 정의할 수 있습니다. 상수를 정의하고 사용할 때 $ 기호를 사용할 필요가 없습니다.

상수 값은 고정된 값이어야 하며 변수, 클래스 속성, 수학 연산 결과 또는 함수 호출이 될 수 없습니다.

인터페이스에서도 상수를 정의할 수 있습니다. 더 많은 예제를 보려면 설명서의 인터페이스 섹션을 참조하세요.

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

구문: ​​const 상수= 'constant';

class Myclass{
 const constant = '常量';

 //类内部调用
 public function test(){
  echo self::constant.&#39;<br>&#39;;
 } 
}
Myclass::test();
//类外部访问
echo Myclass::constant.&#39;<br>&#39;; //方法一

$obj = new Myclass();  //方法二
echo $obj::constant.&#39;<br>&#39;;

2. 정적 속성: 상수 구문(::)을 사용하여 액세스할 수 있는 변수이며 인스턴스화 없이 액세스할 수 있습니다

구문: public static $my_static = '유사 상수';

class Myclass{
 public static $static_val = &#39;静态属性&#39;;
 //类内部访问
 public function test(){
  return self::$static_val.&#39;<br>&#39;;
 } 
}

//类外部访问
// echo Myclass::test();
echo Myclass::$static_val;  //方法一
$obj = new Myclass();    //方法二
echo $obj::$static_val;
echo $obj->test();

3. 비정적 속성: -> 기호를 사용하여 인스턴스화 후에 액세스할 수 있는 일반 변수입니다. public $my_val = '일반 변수'

class Myclass{
 public $normal_val = &#39;非静态属性&#39;;

 //类内部访问
 public function test(){
  return $this->normal_val ;
 } 
}
//类外部访问
$obj = new Myclass(); 
echo $obj->normal_val;
echo $obj->test();

PHP에서 클래스의 상수, 속성, 메서드 목록을 얻는 방법


$r = new ReflectionClass($this); 
Zend_Debug::dump($r->getConstants(), "Constants"); 
Zend_Debug::dump($r->getProperties(), "Properties"); 
Zend_Debug::dump($r->getMethods(), "Methods");

위 내용은 이 글의 전체 내용입니다. , 모든 사람의 학습에 도움이 되기를 바랍니다. ㅋㅋㅋ


위 내용은 PHP의 상수, 정적 속성, 비정적 속성의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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