基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载
文件结构:
|--Api
|--Account.php
|--User.php
|--Service
|--Login.php
|--User.php
|--Application.php
Application.php
立即学习“PHP免费学习笔记(深入)”;
<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">use</span><span style="color: #000000;"> ApiUser;
</span><span style="color: #0000ff;">use</span> ServiceUser <span style="color: #0000ff;">as</span><span style="color: #000000;"> User2;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Application{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> main(){
self</span>::<span style="color: #000000;">registe();
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> User();
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> User2();
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> registe(){
spl_autoload_register(</span>"Application::loadClass"<span style="color: #000000;">);
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> loadClass(<span style="color: #800080;">$class</span><span style="color: #000000;">){
</span><span style="color: #800080;">$class</span>=<span style="color: #008080;">str_replace</span>('\', '/', <span style="color: #800080;">$class</span><span style="color: #000000;">);
</span><span style="color: #800080;">$class</span>="./".<span style="color: #800080;">$class</span>.".php"<span style="color: #000000;">;
</span><span style="color: #0000ff;">require_once</span> <span style="color: #800080;">$class</span><span style="color: #000000;">;
}
}
Application</span>::main();ApiUser.php
<?<span style="color: #000000;">php
namespace Api;
</span><span style="color: #0000ff;">use</span><span style="color: #000000;"> ServiceLogin;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> User{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct(){
</span><span style="color: #0000ff;">echo</span> "User类<br/>"<span style="color: #000000;">;
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Login();
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Account();
}
}</span>ApiAccount.php
<?<span style="color: #000000;">php
namespace Api;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Account{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct(){
</span><span style="color: #0000ff;">echo</span> "Account类<br/>"<span style="color: #000000;">;
}
}</span>ServiceLogin.php
<?<span style="color: #000000;">php
namespace Service;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Login{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct(){
</span><span style="color: #0000ff;">echo</span> "Login类<br/>"<span style="color: #000000;">;
}
}</span>ServiceUser.php
<?<span style="color: #000000;">php
namespace Service;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> User{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct(){
</span><span style="color: #0000ff;">echo</span> "Service下的User类<br/>"<span style="color: #000000;">;
}
}</span>结果:
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号