>  기사  >  백엔드 개발  >  PHP 객체지향에서 정적 메소드 사용

PHP 객체지향에서 정적 메소드 사용

巴扎黑
巴扎黑원래의
2017-04-11 17:17:522722검색

정적 메소드란 무엇인가요?

객체 생성 시 모든 변수와 메소드를 호출해야 하는 것은 아닙니다. static 키워드를 추가하여 변수와 메서드를 직접 호출할 수 있습니다.

정적 멤버를 호출하는 구문 형식은 다음과 같습니다.

키워드::static 멤버

키워드는 다음과 같습니다.

( 1) self, 클래스 내에서 정적 멤버를 호출할 때 사용됩니다.

(2) 클래스 외부에서 클래스 내부의 정적 멤버를 호출할 때 정적 멤버의 클래스 이름을 사용합니다.

참고: 정적 메서드에서는 정적 변수만 호출할 수 있으며 일반 변수는 정적 변수를 호출할 수 없습니다.

정적 메소드 예시 설명:

정적 메소드 예시 1:

<?php
class Math{
static function squared($input){
return $input*$input
}
}
echo Math :: squared(3);

실행 결과: 9

위 간단한 인스턴스이므로 참조할 수 있는 객체 인스턴스가 없을 수 있으므로 정적 메서드에서는 $this 키워드를 사용할 수 없다는 점에 유의할 가치가 있습니다. 정적 메서드에는 개체 인스턴스화가 필요하지 않기 때문입니다.

정적 멤버를 사용하면 개체를 인스턴스화할 필요가 없는 것 외에도 개체가 삭제된 후에도 수정된 정적 데이터를 다음에 사용할 수 있도록 저장하는 기능도 있습니다. 이 개념은 비교적 추상적입니다. 이를 자세히 분석하기 위해 예를 들어보겠습니다.

정적 메서드 예 2:

<?php
header("content-type:text/html;charset=utf-8");
class Play{
static $num = 0;
function showNum(){
echo &#39;这是你第&#39; . self :: $num . &#39;次玩LOL&#39;;
self :: $num++ ;
}
}
$play1 = new Play();
$play1 -> showNum();
echo &#39;<br/>&#39;;
$play2 = new Play();
$play2 -> showNum();
echo &#39;<br/>&#39;;
echo &#39;这是你第&#39; . Play::$num .&#39;次玩LOL&#39;;

위의 예에서는 먼저 정적 변수 $num을 정의한 다음 클래스에서 메서드를 선언하고 메서드에서 정적 변수를 호출한 후 다음을 호출했습니다. 메서드 예제에서 볼 수 있듯이 정적 변수에 1을 추가하여 클래스의 개체를 차례로 인스턴스화한 다음 메서드를 호출합니다. 다음은 위에서 말한 내용입니다. 객체가 삭제된 후에도 수정된 정적 데이터는 다음에 계속 사용할 수 있도록 저장됩니다.

참고:

정적 메서드는 사용하기 매우 쉽습니다. 클래스가 처음 로드되면 정적 멤버 공간이 생성됩니다. 이미 주어졌습니다. 그러나 아무것도 남용될 수 없습니다. 너무 많은 정적 멤버가 선언되면 공간이 항상 점유되어 시스템의 실행 속도와 기능에 영향을 미치므로 기억하십시오. 좋은 것이더라도 너무 많은 것을 욕심내지 마십시오!

위 내용은 PHP 객체지향에서 정적 메소드 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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