類(lèi)庫(kù)自動(dòng)加載
在業(yè)務(wù)越來(lái)越復(fù)雜的情況下一個(gè)腳本需要include或require的類(lèi)文件也會(huì)越來(lái)越多,
這時(shí)需要用到__autoload()方法在實(shí)例化對(duì)象的時(shí)候自動(dòng)進(jìn)行加載類(lèi)文件
1,__antoload()的使用
新建init.php文件,代碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 3:39 */ header('content-type:text/html;charset=utf8'); function __autoload($className){ //自動(dòng)加載類(lèi)名為className,文件名為./$className.class.php的文件 require "./$className.class.php"; }
2,測(cè)試
新建student類(lèi)和teacher類(lèi)
Student.class.php代碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 3:41 */ class Student{ public function __construct() { echo "學(xué)生類(lèi)已加載"; } }
Teacher.class.php代碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 3:41 */ class Teacher{ public function __construct() { echo "老師類(lèi)已加載"; } }
創(chuàng)建index.php文件測(cè)試是否需要同時(shí)引進(jìn)對(duì)應(yīng)的類(lèi)文件才可以加載對(duì)應(yīng)的構(gòu)造函數(shù)
代碼如下:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/3/3 0003 * Time: 下午 3:43 */ require './init.php'; $student=new Student(); echo "<br>"; $teacher=new Teacher();
在瀏覽器運(yùn)行index.php文件效果展示如下: