spl_autoload_register()函式
功能說明
將函式註冊到SPL __autoload函式棧中。如果該棧中的函式尚未啟用,則啟用它們。
注:SPL是Standard PHP Library(標準PHP庫)的縮寫。它是PHP5引入的一個擴充套件庫,其主要功能包括autoload機制的實現及包括各種Iterator介面或類。 SPL autoload機制的實現是通過將函式指標autoload_func指向自己實現的具有自動裝載功能的函式來實現的。SPL有兩個不同的函式 spl_autoload, spl_autoload_call,通過將autoload_func指向這兩個不同的函式地址來實現不同的自動載入機制。
實戰練習
建立一個類檔案A.php,定義一個名字為A的類
<?php
class A {
public function __construct() {
echo 'Got it.';
}
}
建立index.php,要想在index.php中使用類A,常規寫法為
<?php
require('A.php');
$a = new A();
但是,本人不想每次使用類A都要寫一段require語句,而是希望使用類A時,系統可以自動載入A.php檔案,在php5及之後版本中就可以使用__autoload函式來進行自動類載入
<?php
function __autoload($class) {
$file = $class.'.php';
if (is_file($file)) {
require_once($file);
}
}
$a = new A();
如果不想使用預設的__autoload函式,而是使用自定義函式,則需要使用spl_autoload_register()來進行註冊
function autoload($class) {
$file = $class.'.php';
if (is_file($file)) {
require_once ($file);
}
}
spl_autoload_register('autoload');
$a = new A();
下面這種寫法也是同樣的效果
<?php
class Loader {
function autoload($class) {
$file = $class.'.php';
if (is_file($file)) {
require_once($file);
}
}
}
spl_autoload_register(array('Loader', 'loadClass'));
$a = new A();
相關推薦
spl_autoload_register()函式
功能說明 將函式註冊到SPL __autoload函式棧中。如果該棧中的函式尚未啟用,則啟用它們。 注:SPL是Standard PHP Library(標準PHP庫)的縮寫。它是PHP5引入的一個擴充套件庫,其主要功能包括autoload機制的實現及
詳解spl_autoload_register()函式以及自動載入不同目錄的類
在瞭解spl_autoload_register()函式之前,先來看另一個函式:__autoload。 一、__autoload 這是一個自動載入函式,在PHP5中,當我們例項化一個未定義的
PHP的spl_autoload_register建立autoload函式的佇列問題
sql_autoload_register 函式是註冊給定的函式作為__autoload的實現,它將函式註冊到SPL autoload佇列中並激活。本文主要講spl_autoload_register函式中的佇列問題,更詳細的用法請參看手冊或
spl_autoload_register 註冊自己的自動載入函式(__autoload())
說明: PHP例項化沒有載入的類的,會自動呼叫__autoload();函式載入,可以通過__autolaod()函式來require類,解決很多類,多次require的問題, 可以通過spl的標準PHP 庫函式Standard PHP Library (SPL) 的 autoload 的方法spl_aut
PHP 名稱空間與自動載入機制介紹,spl_autoload_register, __autoload 函式
include 和 require 是PHP中引入檔案的兩個基本方法。在小規模開發中直接使用 include 和 require 沒喲什麼不妥,但在大型專案中會造成大量的 include 和 require 堆積。這樣的程式碼既不優雅,執行效率也很低,而且維護起來也相當困難。 為了解決這個問題,部分框
spl_autoload_register與autoload的區別詳解
版本 函數地址 call() ech log 自己的 正常 lba 功能 spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register — 註冊__autoload()函數說明bool spl_autoload_
PHP中spl_autoload_register函數的用法
版本 說明 standard rar 自己 cli class a class got spl_autoload_register(PHP 5 >= 5.1.2) spl_autoload_register — 註冊__autoload()函數 說明bool spl_
php中自動加載類_autoload()和spl_autoload_register()實例詳解
http obj 自動加載 完整 echo register auto 文件名 代碼 一、_autoload 自動加載類:當我們實例化一個未定義的類時,就會觸此函數。到了php7.1以後版本不支持此函數好像拋棄了 新建一個類文件名字自己隨便去:news類在auto.ph
_autoload 自動加載類和spl_autoload_register()函數
obj title 技術分享 .class auto 自己 req tool () 一、_autoload 自動加載類:當我們實例化一個未定義的類時,就會觸此函數。到了php7.1以後版本不支持此函數好像拋棄了 新建一個類文件名字自己隨便去:news類在auto.
詳解spl_autoload_register()函數
執行 再看 對象 gpo 參數 面向對象 使用 實例 來看 在了解這個函數之前先來看另一個函數:__autoload。 一、__autoload 這是一個自動加載函數,在PHP5中,當我們實例化一個未定義的類時,就會觸發此函數。看下面例子: prin
php命名空間+spl_autoload_register實現類的自動加載
direct index.php spl rec esp hello require gist pac 自動加載方法: function my_autoload($name){ $name = str_replace(‘\\‘,DIRECTORY_SEPARATOR,$na
c理解提高(5)字串copy函式技術推演
#include <stdlib.h> #include <string.h> #include <stdio.h> void main01() { //通過棧的方式對資料進行拷貝 char a[] = "i am a student"; char b[6
c理解提高(3)程式的記憶體四區模型和函式呼叫模型
程式的記憶體四區模型 記憶體四區的建立流程 流程說明 1、作業系統把物理硬碟程式碼load到記憶體 2、作業系統把c程式碼分成四個區 3、作業系統找到main函式入口執行 各區元素分析 函式呼叫模型 基本原理
yolo v2 損失函式原始碼解讀
前提說明: 1, 關於 yolo 和 yolo v2 的詳細解釋請移步至如下兩個連結,或者直接看論文(我自己有想寫 yolo 的教程,但思前想後下面兩個連結中的文章質量實在是太好了_(:з」∠)_) yo
SQL Server 字串函式
在開發T-SQL時,經常會需要對字串進行各種各樣的操作,下面介紹常用的字串函式。 1、獲取字元的ASCII碼 ASCII ASCII碼是對字元的標準編碼。要獲取字元的ASCII碼就可以通過呼叫ASCII函式來實現。 語法結構: ASCII(espression) 這裡的e
python中偏函式的應用
一、什麼是偏函式? (1)在Python的functools模組眾多的功能中,其中有一個就是偏函式,我們稱之為 partial function 模組的概念我們下一篇在細講。 (2)我們都聽過偏將軍吧,在三國時代的官制中,系將軍的輔佐,與裨將軍兩者都
C/C++程式設計教訓----函式內靜態類物件初始化非執行緒安全(C++11之前)
不少程式設計師在編寫程式的時候,會使用函式內靜態(static)變數,既能滿足函式內這個變數可以持久的記錄某些資訊,又使其訪問範圍的控制侷限於函式內。但函式內靜態類物件初始化是非執行緒安全的。 問題背景 在我們產品中對log4cxx做了一些簡單的封裝 (採用VS2005編譯),其中會
Python2.7 Print函式
Print函式的各種用法 一、基礎用法 1.print語句可以向螢幕上輸出指定的文字。 例如: print 'Hello World!' 2.print語句也可以跟上多個字串,用逗號“,”隔開,就可以連成一串輸出: ps:print會依次列印每個字串,遇到逗號“,”會
Linux串列埠程式設計詳解 linux串列埠相關設定函式
tcgetattr 函式用於獲取與終端相關的引數。引數fd為終端的檔案描述符,返回的結果儲存在termios 結構體中 http://baike.baidu.com/view/5644808.htm?fr=aladdin tcset
redis 有序集合(zset)函式
redis 有序集合(zset)函式 zAdd 命令/方法/函式 Adds the specified member with a given score to the sorted set stored at key. 增加一個或多個元素,如果該元素已經存在,更新它的socre值