PHP 클래스 자동 로딩

不言
풀어 주다: 2023-03-24 20:40:01
원래의
1568명이 탐색했습니다.

이 글은 PHP 클래스의 자동 로딩을 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

먼저 HumanModel.php를 작성하세요

// = example = / /

class HumanModel {
    public function t() {
        echo &#39;人类<br >&#39;;
    }
}
로그인 후 복사
로그인 후 복사

// =클래스 자동 로딩= //

require(&#39;./HumanModel.php&#39;);$lisi = new HumanModel();$lisi->t(); // 人类
로그인 후 복사
로그인 후 복사

// ===노트1부===

/*

클래스 자동 로딩

존재하지 않는 클래스를 호출하는 경우 ,

오류를 보고하기 전에 __autoload 함수
를 사용하여 개입 기회를 얻을 수도 있습니다

시스템이 __autoload() 함수

를 호출하고 "클래스 이름"을 __autoload 함수

에 자동으로 전달합니다. 그런 다음 다음을 사용할 수 있습니다. __autoload

*/

function __autoload($c) {
    echo &#39;~~~~~~~~~&#39;,$c,&#39;~~~~~~~~&#39;;
}$ming = new Dog();
로그인 후 복사
로그인 후 복사

//에 필요한 클래스를 로드합니다 ===Notes Part 2===

/*

자동 로딩은 __autoload 함수만 사용할 수 있나요?
답변: 아니요, 실제로 함수를 지정할 수 있습니다.

예를 들어 zidongjiazai() 함수를 사용하세요.

참고: 자동 로딩 방법을 작성했음을 시스템에 알리려면

시스템 함수 spl_autoload_register를 사용하여 알리세요
*/

function __autoload($c) {
    echo &#39;我先自动加载&#39;;    echo &#39;./&#39; . $c . &#39;.php&#39;;    echo &#39;<br >&#39;;    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() {
    // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类
    class Bird {
        public static function sing() {
            echo &#39;百灵鸟放声歌唱!<br >&#39;;
        }
    }
}// 必须要调用函数然后才能执行内部test();
Bird::sing(); 


/*
Bird::sing(); 

未定义类
转到上面类的自动加载函数中,于是报错如下:
Warning: require(./Bird.php): failed to open stream: No such file or directory
找不到Bird这个php
*/
로그인 후 복사
로그인 후 복사

/ / 팁: 클래스의 정적 메소드를 자동 로딩 기능으로 등록할 수도 있습니다.

먼저 HumanModel.php

spl_autoload_register(&#39;zidongjiazai&#39;);function zidongjiazai($c) {
    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$HumanModel = new HumanModel();$HumanModel->t();
로그인 후 복사

//를 작성하세요. =예= //

class HumanModel {
    public function t() {
        echo &#39;人类<br >&#39;;
    }
}
로그인 후 복사
로그인 후 복사

// =자동 로딩 of the class= //

require(&#39;./HumanModel.php&#39;);$lisi = new HumanModel();$lisi->t(); // 人类
로그인 후 복사
로그인 후 복사

// ===Notes 1부===

/*

클래스 자동 로딩

존재하지 않는 클래스가 호출되면

오류를 보고하기 전에, __autoload 함수
를 사용하여 한 번 얻으세요 개입할 기회

시스템이 __autoload() 함수

를 호출하고 자동으로 "클래스 이름"을 __autoload 함수

에 전달합니다. 그런 다음 __autoload

에 필요한 클래스를 로드할 수 있습니다
*/

function __autoload($c) {
    echo &#39;~~~~~~~~~&#39;,$c,&#39;~~~~~~~~&#39;;
}$ming = new Dog();
로그인 후 복사
로그인 후 복사


// === 참고 2부===

/*
자동 로딩은 __autoload 기능만 사용할 수 있나요?
답변: 아니요, 실제로 함수를 지정할 수 있습니다.

예를 들어 zidongjiazai() 함수를 사용하세요.

참고: 자동 로딩 방법을 작성했음을 시스템에 알리려면
시스템 함수 spl_autoload_register를 사용하여 알리세요
*/

function __autoload($c) {
    echo &#39;我先自动加载&#39;;    echo &#39;./&#39; . $c . &#39;.php&#39;;    echo &#39;<br >&#39;;    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() {
    // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类
    class Bird {
        public static function sing() {
            echo &#39;百灵鸟放声歌唱!<br >&#39;;
        }
    }
}// 必须要调用函数然后才能执行内部test();
Bird::sing(); 


/*
Bird::sing(); 

未定义类
转到上面类的自动加载函数中,于是报错如下:
Warning: require(./Bird.php): failed to open stream: No such file or directory
找不到Bird这个php
*/
로그인 후 복사
로그인 후 복사

/ / 팁: 클래스의 정적 메소드를 등록하여 자동 로딩 기능으로 사용할 수도 있습니다

관련 권장 사항:

PHP의 추상 클래스

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!