백엔드 개발 PHP 튜토리얼 PHP에서 클래스 로드 정보

PHP에서 클래스 로드 정보

Mar 01, 2021 pm 03:50 PM
친절한 객체지향

객체지향도 중요한 개념이고, 객체지향에서는 클래스도 중요한 개념이지만, 클래스를 사용하려면 클래스 로딩이 핵심입니다.

클래스에 액세스하는 방법에는 두 가지가 있습니다.

  • 인스턴스화된 객체를 통한 액세스

  • 클래스 멤버 액세스

액세스를 위한 전제 조건은 클래스가 메모리에 존재하므로 클래스를 로드해야 한다는 것입니다. 기억 속에 미리.

1. 수동 로딩

//类文件 Salary.php
<?php
   class Salary{
      public  function Student(){
        echo "Salary下面的Student方法";
      }
   }
?>
로그인 후 복사
应用文件:useSalary.php
<?php
//$s = new Salary();会报错,因为useSalaty.php中间未定义Salary类

include_once &#39;Salary.php&#39;;				//也可以使用require,通常使用_once,因为类不允许重名
$s = new Salary();
echo $s->Student();
?>
로그인 후 복사
<?php
//加载类文件是一种比较消耗资源的方式,可以事先使用class_exists()函数来判定类是否存在,存在就不用加载,不存在才加载
if(!class_exists(&#39;Salary&#39;)){
	//不存在:加载
    include_once &#39;Salary.php&#39;;
}
//使用
$s = new Salary();
?>
로그인 후 복사

2. 자동 로딩

  • PHP7 이전에 사용했던 자동 로딩 메커니즘: 시스템에서 제공하는 __autoload() 함수를 사용한 후 시스템에서 사용해야 할 때 사용 클래스가 메모리에 없으면 시스템은 자동으로 __autoload() 함수를 호출하여 클래스 파일을 로드합니다.

<?php
function __autoload($classname){	//参数为类名:即当前需要访问的类的名字
//需要人为定义去哪加载,怎么加载   
    include_once $classname . &#39;.php&#39;;	//假定为当前目录下,类文件名字为:类名.php
}

//使用类:内存目前并没有
$s = new Salary();	//系统发现内存没有Salary,所以调用__autoload()去加载
?>
로그인 후 복사
//若在不同路径下
<?php
//定义自动加载
function __autoload($classname){
    $abc_file = &#39;abc/&#39; . $classname . &#39;.php&#39;;		//如abc/Salary.php
    if(file_exists($c_file)){                      //利用file_exists()判断文件是否存在
        include_once $abc_file;
    }
}
?>
로그인 후 복사
  • PHP7 이후에는 __autoload() 함수를 사용하는 것을 권장하지 않습니다. 대신 spl_autoload_register(정의된 함수)를 사용하여 사용자 정의 함수를 시스템 내부에 배치하는 것이 좋습니다.

<?php
function myself_autoload($classname){		//与__autoload()类似
    $abc_file = &#39;abc/&#39; . $classname . &#39;.php&#39;;		//如abc/Salary.php
    if(file_exists($c_file)){
        include_once $c_file;
    }
}
//此时,上述函数永远不会自动运行,除非将函数注册到系统内部
spl_autoload_register(&#39;myself_autoload&#39;);
?>
로그인 후 복사
rrree

추천: php 튜토리얼

위 내용은 PHP에서 클래스 로드 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까? Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까? Sep 23, 2023 am 09:37 AM

@JsonIdentityInfo 주석은 Jackson 라이브러리에서 객체가 부모-자식 관계를 가질 때 사용됩니다. @JsonIdentityInfo 주석은 직렬화 및 역직렬화 중에 객체 ID를 나타내는 데 사용됩니다. ObjectIdGenerators.PropertyGenerator는 사용할 개체 식별자가 POJO 속성에서 나오는 상황을 나타내는 데 사용되는 추상 자리 표시자 클래스입니다. 구문@Target(값={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(값=RUNTIME)공개

Go의 객체 지향 프로그래밍 살펴보기 Go의 객체 지향 프로그래밍 살펴보기 Apr 04, 2024 am 10:39 AM

Go 언어는 유형 정의 및 메소드 연관을 통해 객체 지향 프로그래밍을 지원합니다. 전통적인 상속을 지원하지 않지만 구성을 통해 구현됩니다. 인터페이스는 유형 간의 일관성을 제공하고 추상 메소드를 정의할 수 있도록 합니다. 실제 사례에서는 OOP를 사용하여 고객 운영 생성, 획득, 업데이트 및 삭제를 포함하여 고객 정보를 관리하는 방법을 보여줍니다.

Go 언어의 객체지향적 특징 분석 Go 언어의 객체지향적 특징 분석 Apr 04, 2024 am 11:18 AM

Go 언어는 객체 지향 프로그래밍, 구조체를 통한 객체 정의, 포인터 수신기를 사용한 메서드 정의, 인터페이스를 통한 다형성 구현을 지원합니다. 객체 지향 기능은 Go 언어에서 코드 재사용, 유지 관리 용이성 및 캡슐화를 제공하지만 클래스 및 상속 및 메서드 시그니처 캐스트에 대한 전통적인 개념이 부족하다는 제한 사항도 있습니다.

PHP의 패키징 기술 및 응용 PHP의 패키징 기술 및 응용 Oct 12, 2023 pm 01:43 PM

PHP의 캡슐화 기술과 애플리케이션 캡슐화는 객체 지향 프로그래밍에서 중요한 개념입니다. 이는 외부 프로그램에 대한 통합 액세스 인터페이스를 제공하기 위해 데이터와 데이터에 대한 작업을 함께 캡슐화하는 것을 의미합니다. PHP에서는 액세스 제어 수정자와 클래스 정의를 통해 캡슐화를 달성할 수 있습니다. 이 기사에서는 PHP의 캡슐화 기술과 해당 애플리케이션 시나리오를 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 캡슐화된 액세스 제어 수정자 PHP에서 캡슐화는 주로 액세스 제어 수정자를 통해 이루어집니다. PHP는 세 가지 액세스 제어 수정자를 제공합니다.

PHP 고급 기능: 객체 지향 프로그래밍의 모범 사례 PHP 고급 기능: 객체 지향 프로그래밍의 모범 사례 Jun 05, 2024 pm 09:39 PM

PHP의 OOP 모범 사례에는 명명 규칙, 인터페이스 및 추상 클래스, 상속 및 다형성, 종속성 주입이 포함됩니다. 실제 사례에는 웨어하우스 모드를 사용하여 데이터를 관리하고 전략 모드를 사용하여 정렬을 구현하는 것이 포함됩니다.

Golang에 클래스와 유사한 객체지향 기능이 있나요? Golang에 클래스와 유사한 객체지향 기능이 있나요? Mar 19, 2024 pm 02:51 PM

Golang(Go 언어)에는 전통적인 의미의 클래스 개념이 없지만, 클래스와 유사한 객체지향 기능을 구현할 수 있는 구조체라는 데이터 형식을 제공합니다. 이 기사에서는 구조를 사용하여 객체 지향 기능을 구현하는 방법을 설명하고 특정 코드 예제를 제공합니다. 구조의 정의와 사용법 먼저 구조의 정의와 사용법을 살펴보자. Golang에서는 type 키워드를 통해 구조를 정의한 다음 필요한 곳에 사용할 수 있습니다. 구조에는 속성이 포함될 수 있습니다.

'PHP의 객체 지향 프로그래밍 소개: 개념에서 실습까지' 'PHP의 객체 지향 프로그래밍 소개: 개념에서 실습까지' Feb 25, 2024 pm 09:04 PM

객체 지향 프로그래밍이란 무엇입니까? 객체 지향 프로그래밍(OOP)은 실제 엔터티를 클래스로 추상화하고 객체를 사용하여 이러한 엔터티를 나타내는 프로그래밍 패러다임입니다. 클래스는 객체의 속성과 동작을 정의하고, 객체는 클래스를 인스턴스화합니다. OOP의 가장 큰 장점은 코드를 더 쉽게 이해하고 유지 관리하며 재사용할 수 있다는 것입니다. OOP의 기본 개념 OOP의 주요 개념에는 클래스, 개체, 속성 및 메서드가 포함됩니다. 클래스는 객체의 속성과 동작을 정의하는 객체의 청사진입니다. 객체는 클래스의 인스턴스이며 클래스의 모든 속성과 동작을 갖습니다. 속성은 데이터를 저장할 수 있는 개체의 특성입니다. 메소드는 객체의 데이터에 대해 작동할 수 있는 객체의 함수입니다. OOP의 장점 OOP의 주요 장점은 다음과 같습니다. 재사용성: OOP는 코드를 더 많이 만들 수 있습니다.

C# 개발 경험 공유: 객체 지향 프로그래밍 및 디자인 원칙 C# 개발 경험 공유: 객체 지향 프로그래밍 및 디자인 원칙 Nov 22, 2023 am 08:18 AM

C#(CSharp)은 소프트웨어 개발 분야에서 널리 사용되는 강력하고 인기 있는 객체 지향 프로그래밍 언어입니다. C# 개발 과정에서는 객체지향 프로그래밍(OOP)의 기본 개념과 디자인 원칙을 이해하는 것이 매우 중요합니다. 객체지향 프로그래밍은 현실 세계의 사물을 객체로 추상화하고 객체 간의 상호작용을 통해 시스템 기능을 구현하는 프로그래밍 패러다임이다. C#에서 클래스는 개체 지향 프로그래밍의 기본 구성 요소이며 개체의 속성과 동작을 정의하는 데 사용됩니다. C#을 개발할 때 몇 가지 중요한 디자인 원칙이 있습니다.

See all articles