php_php 스킬에서 정적 클래스와 정적 변수의 차이점 분석
이 기사에서는 PHP에서 정적 클래스와 정적 변수의 사용 차이를 예제를 통해 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
Static은 정적 객체나 정적 변수를 정의하는 것입니다. 이 글에서 관련 예제를 읽어보면 static으로 정의된 변수나 클래스 메서드의 특징을 알 수 있습니다.
1. $object = new Class() 객체를 생성한 다음 변수/메서드에 액세스할 수 있는 경우 "->"를 사용하여 $object->attribute/function을 호출합니다.
2. 정적이든 비정적이든 상관없이 클래스 메서드/변수: class::attribute/function을 직접 호출하지만 전제 조건이 있습니다.
A. 변수인 경우 해당 변수에 접근할 수 있어야 합니다.
B. 메소드인 경우 접근 가능한 메소드 외에도 요구사항을 충족해야 합니다.
① 정적 메소드라면 특별한 조건은 없습니다.
② 비정적 메소드인 경우 $this가 사용되지 않도록, 즉 비정적 변수/메소드가 호출되지 않도록 메소드를 변경해야 합니다. 물론 static 호출에는 문제가 없습니다. 변수/메소드.
그럼 $object->…을 사용하는 것과 class::…:를 사용하는 것의 차이점을 살펴보겠습니다.
1. $object->…를 사용하여 생성자를 실행하여 객체를 생성해야 합니다.
2. 클래스::...를 사용하여 객체를 생성하는 생성자를 실행하지 않고 정적 메서드/변수를 호출합니다.
3. 클래스::...를 사용하여 비정적 메서드/변수를 호출하면 객체를 생성하기 위해 생성자를 실행할 필요가 없습니다.
그럼 이상한 점이 나오네요. 2와 3이 똑같으니 정적 메소드/변수가 존재하는 이유가 뭘까요?
정적: 클래스 멤버나 메서드를 정적으로 선언하면 클래스를 인스턴스화하지 않고도 직접 액세스할 수 있습니다. 정적 멤버는 개체를 통해 액세스할 수 없습니다(정적 메서드 제외). 객체 인스턴스. 그러나 클래스의 모든 객체 인스턴스는 공유될 수 있습니다.
예시 코드는 다음과 같습니다.
// 정적 멤버 속성 정의
공개 정적 $country = "중국"
//정적 멤버 메소드 정의
공개 정적 함수 myCountry() {
// 정적 멤버 속성에 대한 내부 액세스
echo "나는".self::$country."人
"; }
}
class Student 확장 Person {
함수 연구() {
echo "나는". parent::$country."人
"; }
}
// 멤버 속성 값 출력
echo Person::$country."
" // 출력: 중국
$p1 = 새로운 사람()
//echo $p1->country; // 잘못된 표기
//정적 멤버 메소드에 액세스
Person::myCountry(); // 출력: 저는 중국인입니다
// 정적 메소드는 객체를 통해서도 접근할 수 있습니다:
$p1->myCountry()
// 서브클래스의 멤버 속성값 출력
echo Student::$country."
" // 출력: 중국
$t1 = 새로운 학생()
$t1->study(); // 출력: 저는 중국인입니다
?>
이 예제를 실행하면 다음과 같이 출력됩니다.
저는 중국인이에요
저는 중국인이에요
중국
저는 중국인이에요
요약: 클래스 내의 정적 멤버 속성이나 메서드에 액세스하려면 self::($slef 아님)를 사용하세요. 코드는 다음과 같습니다.
학생::$국가
static $int = 0; // 맞음
static $int = 1 2; // 틀렸습니다(표현식이므로)
static $int = sqrt(121); // 틀렸습니다(표현식이기도 합니다)
$int
에코 $int; }
?>
{
정적 $w3sky = 0
에코 $w3sky
$w3하늘
}
?>
정적 변수는 재귀 함수를 처리하는 방법도 제공합니다. 재귀 함수는 자신을 호출하는 함수입니다. 무한히 반복될 수 있으므로 주의하세요. 정적 변수 $count를 사용하여 언제 중지할지 결정하는 이 간단한 함수를 재귀적으로 살펴보겠습니다.
정적 변수와 재귀 함수의 예, 코드는 다음과 같습니다.
{
정적 $count = 0
$개
에코 $count; if ($count < 10) {
테스트(); }
$개수--; }
?>
참고: 위의 예에 따라 정적 변수를 선언할 수 있습니다. 선언에서 표현식의 결과를 사용하여 값을 할당하면 구문 분석 오류가 발생합니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP에서는 예측할 수없는 토큰을 사용하여 CSRF 공격을 효과적으로 방지 할 수 있습니다. 특정 방법은 다음과 같습니다. 1. 형태로 CSRF 토큰을 생성하고 포함시킨다. 2. 요청을 처리 할 때 토큰의 유효성을 확인하십시오.

H5. 미니 프로그램과 앱의 주요 차이점은 다음과 같습니다. 기술 아키텍처 : H5는 웹 기술을 기반으로하며 미니 프로그램 및 앱은 독립적 인 응용 프로그램입니다. 경험과 기능 : H5는 가볍고 사용하기 쉽고 기능이 제한되어 있습니다. 미니 프로그램은 가벼우 며 상호성이 우수합니다. 앱은 강력하고 부드러운 경험이 있습니다. 호환성 : H5는 크로스 플랫폼 호환성이며 애플릿 및 앱은 플랫폼에 의해 제한됩니다. 개발 비용 : H5는 개발 비용이 낮고 중간 미니 프로그램 및 최고 앱이 있습니다. 적용 가능한 시나리오 : H5는 정보 표시에 적합하고 애플릿은 가벼운 응용 프로그램에 적합하며 앱은 복잡한 기능에 적합합니다.

Photoshop에서 암호로 보호 된 PDF를 내보내십시오 : 이미지 파일을 엽니 다. "파일"을 클릭하십시오. & gt; "수출"& gt; "PDF로 수출". "보안"옵션을 설정하고 동일한 비밀번호를 두 번 입력하십시오. "내보내기"를 클릭하여 PDF 파일을 생성하십시오.

php의 엄격한 유형은 declare (strict_types = 1)를 추가하여 활성화됩니다. 파일 상단에서. 1) 함정 유형 변환을 방지하기 위해 함수 매개 변수 및 리턴 값의 검사 유형 검사를 강요합니다. 2) 엄격한 유형을 사용하면 코드의 신뢰성과 예측 가능성을 향상시키고 버그를 줄이며 유지 관리 및 가독성을 향상시킬 수 있습니다.

PHP에서 최종 키워드는 클래스가 상속되고 메소드가 덮어 쓰는 것을 방지하는 데 사용됩니다. 1) 클래스를 최종적으로 표시 할 때는 수업을 상속받을 수 없습니다. 2) 메소드를 최종으로 표시 할 때는 메소드를 서브 클래스로 다시 작성할 수 없습니다. 최종 키워드를 사용하면 코드의 안정성과 보안이 보장됩니다.

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

H5 및 Mini 프로그램의 홍보 방법에는 차이가 있습니다. 플랫폼 의존성 : H5는 브라우저에 의존하고 미니 프로그램은 특정 플랫폼 (예 : WeChat)에 의존합니다. 사용자 경험 : H5 경험이 좋지 않으며 MINI 프로그램은 기본 응용 프로그램과 유사한 원활한 경험을 제공합니다. 커뮤니케이션 방법 : H5는 링크를 통해 퍼지고 미니 프로그램은 플랫폼을 통해 공유하거나 검색됩니다. H5 프로모션 방법 : 소셜 공유, 이메일 마케팅, QR 코드, SEO, 유료 광고. 미니 프로그램 프로모션 방법 : 플랫폼 프로모션, 소셜 공유, 오프라인 프로모션, ASO, 다른 플랫폼과의 협력.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.
