引入文件并使用,要注意文件是否有命名空间,use使用与不使用的方式,
创建4个php文件
/index.php
/test.php
/app/test.php
/app/demo.php
index.php
未定义命令空间
<?php
//引入的3个文件均没有定义命名空间
require 'test.php';
require 'app/test.php';
require 'app/demo.php';
fun(); //fun //报错,test.php和app/test.php存在同名的函数
Test::main(); //main //报错,test.php和app/test.php存在同名的类
//解决方式是修改不重名,或者加入命名空间
$demo=new Demo;
$demo->Demo_fun(); //demo 正常显示
已定义命令空间
<?php
//引入的3个文件已定义命名空间
require 'test.php';
require 'app/test.php';
require 'app/demo.php';
/* 命令空间\函数或类 */
Test\fun(); //fun
Test\Test::main(); //main
//如果命名空间只有app,这里就是App\fun()
App\Test\fun(); //fun
$demo=new App\Demo; //或者use App\Demo; $demo=new Demo;
$demo->Demo_fun(); //demo
已定义命令空间并已use
use 关键字的用法有三种
1.声明使用某个命名空间中的类
2.用在匿名函数之后给匿名函数增加参数
3.xxx
<?php
//引入的3个文件已定义命名空间
require 'test.php';
require 'app/test.php';
require 'app/demo.php';
use App\Test\Test;
use App\Demo;
Test::main(); //main
$demo=new Demo;
$demo->Demo_fun(); //demo
test.php
<?php
namespace Test;
function fun()
{
echo 'fun<br/>';
}
class Test{
function main()
{
echo 'main<br/>';
}
}
app\demo.php
<?php
namespace App;
class demo{
function demo_fun()
{
echo 'demo<br/>';
}
}
app\test.php
<?php
namespace App\Test;
function fun()
{
echo 'fun<br/>';
}
class Test{
function main()
{
echo 'main<br/>';
}
}
不使用require、include等如何引入文件?
采用自动载入功能,查看
网友评论