phper必知必會之類庫自動載入的七種方式(三)

2022-03-12 02:40:31 字數 3116 閱讀 6642

下面顯示例子的檔案目錄結構圖

}下面7種方式都可以實現自動載入,結果都為:

這裡是oneclass.php的show方法

這裡是twoclass.php的show方法

<?php 

以後使用這個提示乙個警告,deprecated: __autoload() is deprecated, use spl_autoload_register() instead

function __autoload($classname)

//呼叫類庫如果找不到會自動執行__autoload()

$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

執行結果
deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /users/lidong/desktop/wwwroot/test/april/autoload1/index.php on line 5

這裡是oneclass.php的show方法

這裡是twoclass.php的show方法

總結:在php7.2以後使用__autoload()會報乙個警告,7.2之前這種方式是沒提示的.這種方式,是呼叫乙個找不到的類會自動取呼叫__autoload()方法然後在方法裡面執行include引用,實現自動載入。
<?php 

function register($classname).php";

}spl_autoload_register("register");

$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

<?php 

spl_autoload_register(function($classname).php";

});$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

方法四:index4.php 使用spl_autoload_register()方法,呼叫類的register方法實現自動載入
class autoload.php";

} }spl_autoload_register(["autoload","register"]);

$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

test2/oneclass.php
<?php 

namespace auto\test2;

class oneclass

}

test2/twoclass.php
<?php 

namespace auto\test2;

class twoclass

}

方法五:index5.php,使用spl_autoload_register(),呼叫載入類的register方法,轉化傳遞過來的命名空間實現自動載入
<?php 

class autoload.php";

} }spl_autoload_register(["autoload","register"]);

$one = new auto\test2\oneclass();

$one->show();

$two = new auto\test2\twoclass();

$two->show();

方法六:index6.php 跟方法五類似,區別是use方法呼叫類例項化時可以直接使用類名,實現自動載入
<?php 

use auto\test2\oneclass;

use auto\test2\twoclass;

class autoload.php";

} }spl_autoload_register(["autoload","register"]);

$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

方法七:index7.php 與方法五和六思路一致,只不重載入類放在外部不是引用在統一檔案,要點就是命名空間定義的類,要使用也要先include,實現自動載入

autoload.php

<?php 

namespace auto;

class autoload.php";} }

index7.php
<?php 

use auto\test2\oneclass;

use auto\test2\twoclass;

include "./autoload.php";

spl_autoload_register(["auto\autoload","register"]);

$one = new oneclass();

$one->show();

$two = new twoclass();

$two->show();

phper必知必會之陣列指標(四)

listarr 1232 2456 7789 8976 5678 3456 2347 9876 3451 7744 2212 3214 echo 第乙個元素 key listarr current listarr php eol next listarr echo 第二個元素 key listarr...

SQL必知必會 資料庫基礎

儲存有組織的資料的容器 通常是乙個檔案或一組檔案 注意 誤用導致混淆 人們通常用資料庫這個術語來代表他們使用的資料庫軟體,這是不正確的,也因此產生了許多混淆。確切地說,資料庫軟體應稱為 資料庫管 理系統 即 dbms 資料庫是通過 dbms 建立和操縱的容器,而具體它究竟是什麼,形式如何,各種資料庫...

SQL必知必會 了解資料庫

資料庫 database 儲存有組織的資料的容器 通常是乙個檔案或者是一組檔案 注 dbms與資料庫不同,通過dbms來訪問資料庫。表 某種特定型別資料的結構化清單,對資料分類。注 在一定範圍內,表的名字是唯一的。列 表中的乙個字段,表是由乙個或者多個列組成。資料型別 每一列都有乙個資料型別,它限制...