차이점: const는 한번 정의되면 변경할 수 없지만 static으로 수정된 변수는 변경할 수 있습니다. const는 클래스 속성만 수정할 수 있고 클래스 메서드는 수정할 수 없습니다. static은 속성과 메서드를 수정할 수 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP의 정적 변수와 const 변수의 차이점
정적 변수
1. static 정적 변수는 수정할 수 있지만 const 변수는 수정할 수 없습니다.
2. 정적 정적 변수는 권한을 수정할 수 있습니다.
3. 클래스 내부에서는 satic 수정 메서드가 있습니다. 본문에서는 액세스할 수 없습니다. 클래스의 staic 변수와 const 상수만 액세스할 수 있습니다.
class staticTest1 { var $var1 = "hello"; public static $var2 = "hellostatic"; //public, protected, private const var3 = "helloconst"; public static function displayDifferent(){ ### echo $this->$var1."<br>";//不能访问普通变量 echo staticTest1::$var2."<br>";//可以访问类的静态变量 echo self::var3."<br>";//不能用$this::var3, self::var3代表当前类,$this::var3代表当前对象 } }
//메소드는 두 가지 방법으로 호출할 수 있습니다.
//第一种,通过对象调用 $test1 = new staticTest1(); echo $test1->displayDifferent(); echo "<br>"; //第二种,通过类调用 echo staticTest1::displayDifferent(); echo "<br>";
그런데 객체의 경우 "::"만 가능합니다. 정적 변수와 메서드에 액세스할 수 있으며 self는 "::"만 사용하여 현재 클래스의 멤버를 호출할 수 있습니다
1. Const 변수는 메서드가 아닌 멤버 변수만 수정할 수 있습니다
2. 필요 없습니다. 수정 권한을 추가하려면
3. const 변수는 전체 클래스에 속하고 객체에 속하지 않기 때문에 객체를 통해 접근할 수 없습니다. 예를 들어 $this->constvariable은
class constTest1 { var $var1 = "welcome"; // public const pi = 3.14;//不能加修饰权限 const pi = 3.14; // const function displayDifferent() {//function前不能加const // // } function displayDifferent() { echo self::pi."<br>"; // echo $this::pi."<br>"; } static function displayDifferent2() { echo self::pi."<br>"; // echo $this::pi."<br>"; //这句话不行。 } }
2개를 허용하지 않습니다. 방법 전화
//第一种,通过对象调用 $test2 = new constTest1(); echo $test2->displayDifferent(); //第二种,通过类调用 //echo constTest1::displayDifferent();//对象名用"::"只能访问静态变量和方法,所以这个不行 echo constTest1::displayDifferent2();
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP const와 정적 변수의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!