首页 / PHP / PHP的“使用”关键字和自动加载
PHP的“使用”关键字和自动加载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP的“使用”关键字和自动加载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1526字,纯文字阅读大概需要3分钟。
内容图文
![PHP的“使用”关键字和自动加载](/upload/InfoBanner/zyjiaocheng/741/256bcefff46d4ba298ffd3f986e4fd8f.jpg)
我的问题分为三个部分:
>使用use语句是否会立即触发自动加载器,还是等到使用该类? (延迟加载)
>如果不以延迟加载方式进行自动加载,是否会对性能产生负面影响?
>最好遵循哪种模式,为什么?当不使用use语句时,PhpStorm将“不必要的完全限定名称…”显示为代码问题.
这是一个带有use语句的Laravel控制器的示例类定义:
namespace App\Http\Controllers;
use Carbon\Carbon;
class FooController extends Controller
{
/**
* This action uses the Carbon class
*/
public function bar1()
{
return view('foo.bar1', ['now' => new Carbon()]);
}
/**
* This action does not use the Carbon class
*/
public function bar2()
{
return view('foo.bar2');
}
}
没有use语句的同一个类:
namespace App\Http\Controllers;
class FooController extends Controller
{
/**
* This action uses the Carbon class
*/
public function bar1()
{
return view('foo.bar1', ['now' => new \Carbon\Carbon()]);
}
/**
* This action does not use the Carbon class
*/
public function bar2()
{
return view('foo.bar2');
}
}
解决方法:
1)执行新的Class()语句时,类会自动加载.
2)见1)
3)最好遵循哪种模式以及为什么?:
我建议使用use,因为你可能会遇到一个很长的命名空间,你的代码将变得不可读的情况.
从php docs:
This example attempts to load the classes MyClass1 and MyClass2 from
the files MyClass1.php and MyClass2.php respectively.
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
命名空间只是组织类的附加功能.
编辑:正如@IMSoP在评论中指出的那样,新的并不是自动加载器被触发的唯一时间.访问class constant,static method或static property也会触发它,运行class_exists也是如此.
内容总结
以上是互联网集市为您收集整理的PHP的“使用”关键字和自动加载全部内容,希望文章能够帮你解决PHP的“使用”关键字和自动加载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。