您好,登錄后才能下訂單哦!
這篇“PHP中類加載的示例分析”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“PHP中類加載的示例分析”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
類的訪問方式有兩種:
通過實例化對象訪問
類成員訪問
而訪問的前提便是內存中有類的存在,所以需要提前將類加載至內存中。
1.手動加載
//類文件 Salary.php <?php class Salary{ public function Student(){ echo "Salary下面的Student方法"; } } ?>
應用文件:useSalary.php <?php //$s = new Salary();會報錯,因為useSalaty.php中間未定義Salary類 include_once 'Salary.php'; //也可以使用require,通常使用_once,因為類不允許重名 $s = new Salary(); echo $s->Student(); ?>
<?php //加載類文件是一種比較消耗資源的方式,可以事先使用class_exists()函數來判定類是否存在,存在就不用加載,不存在才加載 if(!class_exists('Salary')){ //不存在:加載 include_once 'Salary.php'; } //使用 $s = new Salary(); ?>
2.自動加載
在PHP7之前使用的自動加載機制:利用系統提供的__autoload()函數,然后當系統需要使用類,而內存中又不存在的時候,系統就會自動調用__autoload()函數來加載類文件。
<?php function __autoload($classname){ //參數為類名:即當前需要訪問的類的名字 //需要人為定義去哪加載,怎么加載 include_once $classname . '.php'; //假定為當前目錄下,類文件名字為:類名.php } //使用類:內存目前并沒有 $s = new Salary(); //系統發現內存沒有Salary,所以調用__autoload()去加載 ?>
//若在不同路徑下 <?php //定義自動加載 function __autoload($classname){ $abc_file = 'abc/' . $classname . '.php'; //如abc/Salary.php if(file_exists($c_file)){ //利用file_exists()判斷文件是否存在 include_once $abc_file; } } ?>
在PHP7后,不建議使用__autoload()函數,而是使用一種注冊機制,將用戶自定義的函數,放到系統內部,使用spl_autoload_register(定義好的函數)。
<?php function myself_autoload($classname){ //與__autoload()類似 $abc_file = 'abc/' . $classname . '.php'; //如abc/Salary.php if(file_exists($c_file)){ include_once $c_file; } } //此時,上述函數永遠不會自動運行,除非將函數注冊到系統內部 spl_autoload_register('myself_autoload'); ?>
//可以定義多個方法 <?php function wayone_autoload($classname){ function waytwo_autoload($classname){ } //此時,上述函數永遠不會自動運行,除非將函數注冊到系統內部 spl_autoload_register('wayone_autoload'); spl_autoload_register('waytwo_autoload'); ?>
以上是“PHP中類加載的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。