PHP文件的引入

PHP文件的引入,第1张

概述PHP文件引入要在一个PHP脚本中引入另一个PHP脚本中定义的代码(通常是函数或者类),需要借助include、require、include_once、require_once等语句,include和require都可以通过指定路径引入一个PHP脚本,区别是include没有找到对应路径脚本时发出警告(E_WARNING),而 PHP文件的引入

要在一个 PHP 脚本中引入另一个 PHP 脚本中定义的代码(通常是函数或者类),
需要借助 include、require、include_once、require_once 等语句,@H_502_8@

include 和 require 都可以通过指定路径引入一个 PHP 脚本,
区别是 include 没有找到对应路径脚本时发出警告(E_WARNING),
而 require 会抛出致命错误(E_COMPILE_ERROR)@H_502_8@

include_once/require_once 也是用于引入指定路径 PHP 脚本,
与 include/require 的区别是如果指定路径已经包含过,
不会再次包含,只会包含一次同一路径脚本@H_502_8@

include_once 和 require_once 的区别与 include/require 一样@H_502_8@

使用 include_once/require_once 性能更好一些,
至于使用 include_once 还是 require_once,
取决于你对指定路径 PHP 脚本不存在的预期处理@H_502_8@自动加载类文件

觉得反复编写 require_once/include_once 语句太麻烦,@H_502_8@

可借助 spl_auto_register 函数注册自动加载器,实现系统未定义类或接口的自动加载@H_502_8@

bool spl_autoload_register ([ callable autoload_function[,bool throw = true[, bool $prepend = false ]]] )//autoload_function  欲注册的自动装载函数。//如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。//throw// autoload_function 无法成功注册时,spl_autoload_register()是否抛出异常。//prepend//true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。
//https://laravelacademy.org/post/21682<?PHPnamespace App;use App\Testing\Test as SubTest;spl_autoload_register(function ($classname) {    $path = explode('\', $classname);    if ($path[0] == 'App') {        $base = __DIR__;    }    $filename = $path[count($path) - 1] . '.PHP';    $filepath = $base;    foreach ($path as $key => $val)    {        if ($key == 0 || $key == count($path) - 1) {            continue;        }        $filepath .= DIRECTORY_SEParaTOR . strtolower($val);    }    $filepath .= DIRECTORY_SEParaTOR . $filename;    require_once $filepath;});Test::print();SubTest::print();
通过Composer管理命名空间

借助 PHP 的包管理工具 Composer 帮我们管理这种命名空间与目录路径的映射@H_502_8@ 总结

以上是内存溢出为你收集整理的PHP文件的引入全部内容,希望文章能够帮你解决PHP文件的引入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存