类别:PHP问题 / 日期:2019-11-26 / 浏览:209 / 评论:0

php进口文件的作用

php进口文件能够完成自动加载功用。

剖析PHP进口文件的自动加载功用

php的自动加载:

在php5之前,我们要用某个类或类的要领,那必需include或许require,以后才运用,每次用一个类,都需要写一条include,贫苦

php作者想简单点,最好能援用一个类时,假如当前没有include进来,体系能自动去找到该类,自动引进~

因而:__autoload()函数应运而生。

一般放在应用程序进口类内里,比方discuz中,放在class_core.php中。

引荐:《PHP教程》

先讲浅易的例子:

第一种状况:文件A.php中内容以下

<?php
class A{
  public function __construct(){
         echo 'fff';
  }
}
?>

文件C.php 中内容以下:

<?php  
function __autoload($class)  
{  
$file = $class . '.php';  
if (is_file($file)) {  
require_once($file);  
}  
}  
 
$a = new A(); //这边会自动挪用__autoload,引入A.php文件
 
?>

第二种状况:偶然我愿望能自定义autoload,而且愿望起一个更酷的名字loader,则C.php改成以下:

<?php
function loader($class)
{
$file = $class . '.php';
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register('loader'); //注册一个自动加载要领,掩盖原有的__autoload
$a = new A();
?>

第三种状况:我愿望嵬峨上一点,用一个类来治理自动加载

<?php  
class Loader  
{  
public static function loadClass($class)  
{  
$file = $class . '.php';  
if (is_file($file)) {  
require_once($file);  
}  
}  
}  
 
spl_autoload_register(array('Loader', 'loadClass'));  
 
$a = new A();
 
?>

当前为最好情势。

一般我们将spl_autoload_register(*)放在进口剧本,即一开始就援用进来。比方下面discuz的做法。

if(function_exist('spl_autoload_register')){
 
  spl_autoload_register(array('core','autoload'));  //假如是php5以上,存在注册函数,则注册本身写的core类中的autoload为自动加载函数
 
}else{
 
  function __autoload($class){         //假如不是,则重写php原生函数__autoload函数,让其挪用本身的core中函数。
 
    return core::autoload($class);
 
  }
 
}

这段扔在进口文件最前面,自然是极好的~

以上就是php进口文件的作用的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章