首頁  >  文章  >  後端開發  >  植物大戰殭屍修改器使用方法 PHP __autoload函數(自動載入類別檔案)的使用方法

植物大戰殭屍修改器使用方法 PHP __autoload函數(自動載入類別檔案)的使用方法

WBOY
WBOY原創
2016-07-29 08:47:551676瀏覽

這也是OO設計的基本想法之一。在PHP5之前,如果需要使用一個類,只需要直接使用include/require將其包含進來即可。以下是一個實際的範例:

複製程式碼 程式碼如下:


class ClassA{
public function __construct(){
echoor /load success; ClassA,檔案名稱為ClassA.php
class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
class ClassB extends ClassA {
function
class ClassB extends ClassA {
:__construct();
echo “ClassB load success!”;
}
}
//定義一個類別ClassB,檔案名稱為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
public function
//parent::__construct();
echo “ClassB load success!”;
}
}
定義兩個測試用的類別之後,我們來寫一個含有__autoload()方法的PHP運行程式檔案如下:
function __autoload($classname){
$classpath=”./”.$classname.'.php';
if(file_exists($classpath)){
require_once($classpath);
}
else{ class
file'.$classpath.'not found!';
}
}
$newobj = new ClassA();
$newobj = new ClassB();


$newobj = new ClassB();


load
這個檔案的運行是一點問題都沒有的,可見auload是多麼的好用啊,呵呵…
但是不得不提醒你幾個方面是必須要注意的。
1、如果類別存在繼承關係(例如:ClassB extends ClassA),並且ClassA不在ClassB 所在目錄
利用__autoload魔術函數實例化ClassB的時候就會受到一個致命錯誤:
Fatal error: Class 'Classd' not found in ……ClassB.php on line 2,
解決方法:把所有存在extends關係的類別放在同一個檔案目錄下,或是在實例化一個繼承類別的時候在檔案中手工包含被繼承的類別;
2 、另外一個要注意的是,類別名稱和類別的檔案名稱必須一致,才能更方便的使用魔術函數__autoload;
其他需要注意的事情:
3、在CLI模式下執行PHP腳本的話這個方法無效;

4.如果你的類別名稱和使用者的輸入有關-或依賴使用者的輸入,一定要注意檢查輸入的檔案名,例如:.././這樣的檔案名稱是非常危險的。

以上就介紹了植物大戰殭屍修改器使用方法 PHP __autoload函數(自動載入類文件)的使用方法,包括了植物大戰殭屍修改器使用方法方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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