php 类文件加载 Autoloader
生活随笔
收集整理的這篇文章主要介紹了
php 类文件加载 Autoloader
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? 做習(xí)慣了編譯語(yǔ)言,轉(zhuǎn)到php 使用 php的面向?qū)ο箝_(kāi)發(fā)時(shí)候遇見(jiàn)一個(gè)挺別扭的問(wèn)題。在Php中引入對(duì)象 后 在調(diào)用過(guò)程中還需要將對(duì)象所在的php文件
require 到當(dāng)前php文件目前代碼結(jié)構(gòu)
index.php <?phpuse model\BookModel;include_once __DIR__.'/autoloader.php'; Autoloader::register();$book=new BookModel(); $book->id=10; $book->name="wangk"; echo $book->toString();?>
?
autoloader.php <?php/**** 自動(dòng)載入函數(shù)*/ class Autoloader {/*** 向PHP注冊(cè)在自動(dòng)載入函數(shù)*/public static function register(){spl_autoload_register(array(new self, 'autoload'));}/*** 根據(jù)類名載入所在文件*/public static function autoload($className){// DIRECTORY_SEPARATOR:目錄分隔符,linux上就是’/’ windows上是’\’$filePath = __DIR__ . DIRECTORY_SEPARATOR . $className;$filePath = str_replace('\\', DIRECTORY_SEPARATOR, $filePath) . '.php';if (file_exists($filePath)) {require_once $filePath;return; // if(method_exists($className, "init")) { // call_user_func(array($className, "init"), $params); // }} else {echo "無(wú)法加載" . $filePath;}} }
?
bookmodel.php <?php /*** Created by PhpStorm.* User: wangk* Date: 2015/7/16* Time: 10:14*/namespace model;class BookModel {public $name;public $id;public $age;public function toString(){return 'name:'.$this->name.','.$this->id.",".$this->age;}}
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的php 类文件加载 Autoloader的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到人是对方在想我吗
- 下一篇: 有意思的PHP代码块-面试经典_无需整理