PHP: static 동작

4613 단어 staticPHP7초학자
개시하다
이 기사는 프로그래밍 학자의 비망록을 처음 다루는 기사인데, 다른 초보자들에게 조금이나마 도움이 됐으면 좋겠다고 생각한다.
이번에 PHP를 배우면서 static에 신경을 많이 써서 조사해봤어요.
만약 무슨 잘못이 있으면 지적해 주세요.
static 사용 방법
static 발표를 통해 クラスに属したプロパティまたはメソッド(newせずに利用できるプロパティやメソッド)로 변경됩니다.
실례적인 상태에 의존하지 않고 처리할 수 있다는 것이다.
이것도 실용 프로그램 방법이라고도 불리며 규정된 약정 처리 등에 쓰인다.
※ 정적 방법에서는 $this를 사용할 수 없습니다.
속성에 static을 추가할 때
속성이 속한 클래스에 고정
소속 클래스의 고정은 이 속성에 접근할 수 있고 속성은 실례 사이에 공통되어 있음을 의미한다.
샘플을 만들어 행동을 확인하고 싶습니다.

<?php 
class StaticNum
{
    //staticプロパティ
    public static $stNum = 0;  
    //通常のプロパティ
        public $num = 0;  

    //プロパティに引数の値を加算するメソッド
    public function count(int $plus)
{
        //staticプロパティに加算     
     self::$stNum += $plus;  
        //通常プロパティに加算
        $this->num += $plus;  
}
}

//StaticNumbersインスタンスを2つ作成
$staticA = new StaticNum(); 
$staticB = new StaticNum(); 

//Aのcount()を引数5で実行
$staticA->count(5);  
//Aのプロパティを出力
echo "AのstNum:" . $staticA::$stNum. "num:" . $staticA->num;

//Bのcount()を引数10で実行
$staticB->count(10); 
 //Bのプロパティを出力
echo "BのstNum: " . $staticB::$stNum . "num:" . $staticB->num;  

//実行結果
AのstNum: 5 num: 5
BのstNum: 15 num: 10
상술한 결과를 보면 알 수 있다
원래 실례를 만들고 실행할 때 두 속성에 각각 5와 10을 더하면staticA의 속성은 5개의 값을 가지고staticB의 속성은 10개의 값을 가져야 하지만 staticpublic static $stNum = 0;를 정적 속성으로 사용할 때 속성은 클래스에 속한다.인스턴스에서 독립적으로 값을 가져옵니다.
그 결과 실례적으로 볼 수 있는 클래스에 속하는 속성($stNum)이 하나이기 때문에 추가 대상은 $stNum에 불과하고 5를 더한 후에 10을 더하며 $stNum은 15개의 값을 가진다.
아직 어떻게 쓰는지 모르겠어요.
static 방법에 관해서는 일반적인 방법에 비해 사용 방법도 거의 변화가 없다.
나는 static 선언 결단 방법을 통해 테스트 대상의 범위를 넘어선 재사용 시 사용할 수 있다고 독단적으로 생각한다.
가능하다면 static에서 이렇게 사용해야 할 지식이 있다면 댓글로 가르쳐 주세요.
잘 부탁드립니다.
참고 문헌
PHP manual static 키워드
PHP: 정적인 방법은 무엇 때문입니까?Qiita

좋은 웹페이지 즐겨찾기