php 引入类_PHP 如何引入同一文件下多个class类
同一文件下多個(gè)類(lèi),直接new第一個(gè)類(lèi)有效,其他類(lèi)無(wú)效。其實(shí)是new其他類(lèi),不執(zhí)行自動(dòng)載入,解決方式是,
1、手動(dòng)載入,require引入這個(gè)類(lèi)文件
2、new這個(gè)文件的第一個(gè)類(lèi)或同文件名的類(lèi),讓其自動(dòng)載入
新建2個(gè)文件index.php與app/a.php
app/a.php
namespace App;
class A{
public function __construct() {
echo 'a';
}
}
class B{
public function __construct() {
echo 'b';
}
}
index.php
define('BASEDIR',__DIR__);
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); //類(lèi)的自動(dòng)載入,前文有介紹
以下index.php都省略如上這段
注意use并不會(huì)執(zhí)行Common\Loader::autoload,實(shí)例化或靜態(tài)使用才會(huì)執(zhí)行
//這是載入B.php,不存在報(bào)錯(cuò)
use App\A;
new A; //a;loading:App\A
new B; //報(bào)錯(cuò);loading:B
//這是載入App/B.php,不存在報(bào)錯(cuò)
use App\A;
use App\B;
new B; //報(bào)錯(cuò);loading:App\B
//載入了A,并use了名稱(chēng),找到了class B 所以使用正確。同一文件下多個(gè)class類(lèi),實(shí)例化A類(lèi),即載入了A.php
use App\A;
use App\B;
new A; //a; loading:App\A
new B; //b
原理同上,不new A一樣報(bào)錯(cuò)
use App\A;
new A; //a; loading:App\A
new App\B; //b
其實(shí)原因就是沒(méi)有載入A.php文件,使用手動(dòng)載入可以避免必須new A的情況
require 'App/a.php';
new APP\B; //b
總結(jié)
以上是生活随笔為你收集整理的php 引入类_PHP 如何引入同一文件下多个class类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php代码怎么复制_PHP_PHP网站备
- 下一篇: java 伪异步 netty,Netty