PHP: static 동작
이 기사는 프로그래밍 학자의 비망록을 처음 다루는 기사인데, 다른 초보자들에게 조금이나마 도움이 됐으면 좋겠다고 생각한다.
이번에 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개의 값을 가져야 하지만 static
public static $stNum = 0;
를 정적 속성으로 사용할 때 속성은 클래스에 속한다.인스턴스에서 독립적으로 값을 가져옵니다.그 결과 실례적으로 볼 수 있는 클래스에 속하는 속성
($stNum)
이 하나이기 때문에 추가 대상은 $stNum에 불과하고 5를 더한 후에 10을 더하며 $stNum은 15개의 값을 가진다.아직 어떻게 쓰는지 모르겠어요.
static 방법에 관해서는 일반적인 방법에 비해 사용 방법도 거의 변화가 없다.
나는 static 선언 결단 방법을 통해 테스트 대상의 범위를 넘어선 재사용 시 사용할 수 있다고 독단적으로 생각한다.
가능하다면 static에서 이렇게 사용해야 할 지식이 있다면 댓글로 가르쳐 주세요.
잘 부탁드립니다.
참고 문헌
PHP manual static 키워드
PHP: 정적인 방법은 무엇 때문입니까?Qiita
Reference
이 문제에 관하여(PHP: static 동작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kouki_o9/items/14a8d1919d98bd647dd0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)