>백엔드 개발 >PHP 튜토리얼 >PHP에서 static 및 const 키워드 사용 분석

PHP에서 static 및 const 키워드 사용 분석

高洛峰
高洛峰원래의
2017-01-06 14:04:221190검색

이 기사의 예에서는 PHP에서 static 및 const 키워드의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

클래스의 static 키워드로 설명하는 멤버 속성과 멤버 함수는 모두 정적입니다.

정적 멤버는 객체 인스턴스가 아닌 클래스에 속하므로 외부 액세스를 제한할 수 있습니다.

메모리 관점에서 개체는 "힙 메모리"에 배치되고 개체에 대한 참조는 "스택 메모리"에 배치되며 정적 멤버는 로드 시 초기화 정적 세그먼트에 추가됩니다. 메모리의 모든 객체가 공유할 수 있습니다. 아래 그림과 같이:

PHP에서 static 및 const 키워드 사용 분석

<?php
class Person{
 public static $myCountry = "中国";
 public static function say(){
  echo "我的祖国是:".self::$myCountry."<br>";
 }
}
//输出静态属性
echo Person::$myCountry."<br>";
//调用静态方法
Person::say();
//修改静态属性
Person::$myCountry = "中国-江苏";
echo Person::$myCountry."<br>";
?>

출력 결과는 다음과 같습니다.

中国
我的祖国是:中国
中国-江苏

클래스의 정적 메서드는 클래스의 정적 속성에만 액세스할 수 있습니다. 수업. 클래스의 정적 메서드는 클래스의 비정적 멤버에 액세스할 수 없습니다. self를 사용하여 클래스의 정적 속성에 액세스합니다. self는 self가 정적 메서드가 있는 클래스를 나타낸다는 점을 제외하면 이와 유사합니다. 이는 self가 정적 메서드가 있는 클래스를 나타낸다는 점을 제외하고는 이 메서드를 호출하는 개체를 나타냅니다. . 정적 메서드는 개체와 함께 호출되지 않으므로 이 참조가 없습니다. 이에 대한 언급은 없습니다. 이것이 없으면 클래스의 다른 멤버 속성을 호출할 수 없습니다.

const는 상수를 정의하는 키워드입니다. Const는 클래스에서 상수를 정의하는 데 자주 사용됩니다. "const"로 수정된 멤버 속성의 액세스 방법은 "static"으로 수정된 멤버의 액세스 방법과 유사하며 메소드에서 "클래스 이름" 및 "self" 키워드도 사용합니다. 그러나 "$" 기호를 사용할 필요는 없으며 객체를 사용하여 이에 액세스할 수 없습니다.

<?php
class MyClass{
 const constant = &#39;constant value&#39;;
 function showConstant(){
  //方法中调用常量,没有$
  echo self::constant."<br>";
 }
}
//类直接调用,没有$
echo MyClass::constant."<br>";
$class = new MyClass();
$class ->showConstant();
?>

이 글이 PHP 프로그래밍에 종사하는 모든 분들께 도움이 되기를 바랍니다.

PHP에서 static 및 const 키워드 사용 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

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