目标本文将实现类库的自动加载和路由分析。原文地址:http://www.voidking.com/2017/...类库自动加载和常规加载。通常,include或require用于常规加载。它们之间最根本的区别是错误处理的方式。include包含并运行指定的文件。如果include一个文件有错误,那么程序不会中断,而是继续执行,并会显示一个warningerror。include_once的作用和include几乎一样。唯一不同的是,在导入之前,它会检查要导入的文件是否已经导入,如果已经导入,则不会再次重复导入。require会读取目标文件的内容,并用读取的内容替换自己。如果requireafile有错误,那么程序将中断执行并显示致命错误。require_once的作用和require几乎一样,唯一不同的是在导入之前会检查要导入的文件是否已经导入,如果已经导入,则不再重复导入。在使用一个文件(类库)的函数之前,我们需要使用include或者require将该文件引入到当前文件中,然后我们才能使用该文件中的函数。例如,我们要创建一个新的路由对象。1、在core目录下新建route.php:ctrl=$patharr[0];如果(isset($patharr[1])){$this->action=$patharr[1];}else{$this->action='index';}}else{//index.php没有省略if(isset($patharr[1])){$this->ctrl=$patharr[1];}if(isset($patharr[2])){$this->action=$patharr[2];}else{$this->action='index';}}}else{$this->ctrl='index';$this->action='index';}}else{$this->ctrl='index';$this->action='index';}}}访问地址http://vkphp.dev/index/index或者http://vkphp.dev/index.php/in...,可以看到打印出来的patharr信息获取URL中的参数ctrl=$patharr[0];如果(isset($patharr[1])){$this->action=$patharr[1];}else{$this->action='index';}$count=count($patharr);$i=2;同时($i<$count){$this->params[$patharr[$i]]=$patharr[$i+1];$i=$i+2;}}else{//不省略index.phpif(isset($patharr[1])){$this->ctrl=$patharr[1];}if(isset($patharr[2])){$this->action=$patharr[2];}else{$this->action='index';}$count=count($patharr);$i=3;while($i<$count){$this->params[$patharr[$i]]=$patharr[$i+1];$i=$i+2;}}}else{$this->ctrl='index';$this->action='index';}}else{$this->ctrl='index';$this->action='指数';}p($this->params);}}访问地址http://vkphp.dev/index/index/...或http://vkphp.dev/index.php/in...,可以看到打印出来的params信息支持localhost访问地址http://localhost/vkphp/index....,无法正常获取controller、方法和参数,修改如下:ctrl=$patharr[0];}if(isset($patharr[1])){$this->action=$patharr[1];}$count=count($patharr);$i=2;while($i<$count){if(isset($patharr[$i+1])){$this->params[$patharr[$i]]=$patharr[$i+1];}$i=$i+2;}}p($this->ctrl);p($this->action);p($this->参数);}}源码分享https://github.com/voidking/v...书签从零开始搭建自己的PHP框架PHP文件导入路径问题2-php-include-path/)
