码迷,mamicode.com
首页 > Web开发 > 详细

php自动加载演变

时间:2018-03-21 22:02:34      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:static   namespace   pos   func   lod   names   完整路径   php   静态   

1.一开始我们调用不同页面的类里面的方法时

//test.php
require_once ‘test1.php‘;
require_once ‘test2.php‘;
Test1\ceshi(); //调用方式  命名空间\函数名
Test2\ceshi(); //调用方式  命名空间\函数名
namespace Test1;

function ceshi(){
    echo __FILE__; //文件的完整路径和文件名  例如  D:\sfc\ceshi\mooc\test1.php
}
namespace Test2;
function ceshi(){
	echo __FILE__; //文件的完整路径和文件名  例如 D:\sfc\ceshi\mooc\test2.php
}

2.试想每一个文件都手动引入也太麻烦了,要是能用那个就引入就好了,有的有的,有个函数 function  __autoload(){ } 就可以实现

//解决方案就是自定义自动加载函数,使用spl_autoload_register注册自动加载函数
spl_autoload_register(‘autoload2‘);

Test\test1::ceshi();//调用静态方法格式-->命名空间名\类名::静态方法名
Test\Test2::ceshi();
function autoload2($class){//定义引入文件函数 
    //echo $class ===> Test\test1
    list($namespace,$fileName) = explode(‘\\‘,$class);
    require __DIR__.‘\\‘.$fileName.‘.php‘;
}
<?php
namespace Test;

class test1{
    public static function ceshi(){
        echo __METHOD__;//返回类的名字和方法的名字
echo ‘</br>‘; } }

 

  

1 namespace Test;
2 class test2{
3     public static function ceshi(){
4         echo __METHOD__; //返回类的名字和方法的名字
5         echo ‘</br>‘;
6     }
7 }

 

php自动加载演变

标签:static   namespace   pos   func   lod   names   完整路径   php   静态   

原文地址:https://www.cnblogs.com/zxqblogrecord/p/8619784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!