首頁  >  文章  >  後端開發  >  PHP之自動載入

PHP之自動載入

WBOY
WBOY原創
2016-07-29 09:02:17909瀏覽

類別的自動載入

在外面的頁面中,並不需要去引入類別文件,但程式會在需要一個類別的時候自動去「動態載入」該類別。

  • 建立一個物件的時候new
  • 直接使用一個類別名稱(操作靜態屬性與方法)

使用__autoload魔術函數
當出現兩種情況時候,就會呼叫該函數,該函數需要我們預先定義,在其中寫好載入類別檔案的通用語句

<code><span><span>function</span><span>__autoload</span><span>(<span>$name</span>)</span>{</span><span>require</span><span>'./lib/'</span>.<span>$name</span>.<span>'.class.php'</span>;
}</code>

使用spl_autoload_register()
用它註冊(宣告)多個可以取代__autoload()作用的函數,自然也得去定義這些函數,並且函數的作用跟__autoload()作用一樣,不過此時可以應對更多的情形

<code><span>//注册用于自动加载的函数</span>
spl_autoload_register(<span>"model"</span>);
spl_autoload_register(<span>"controll"</span>);
<span>//分别定义两个函数</span><span><span>function</span><span>model</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}
<span>//如果需要一个类,但当前页面还没加载该类</span><span>//就会依次调用model()和controll(),直到找到该类文件加载,否则就报错</span><span><span>function</span><span>controll</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}</code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了PHP之自動加載,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn