使用命名空间能自动加载吗??

1.php
<?php 
    namespace Foo\bar\subnamespace;
    const Foo = 1;
    function foo() { echo "in 1.php";}
    class foo{
        static function staticmethod(){}
    }
2.php
<?php 

namespace foo\bar;
//include '1.php';
use Foo\bar\subnamespace;

subnamespace\foo();

运行2.php

Fatal error: Call to undefined function Foo\bar\subnamespace\foo() in F:\www\try\2.php on line 7
PHP Fatal error:  Call to undefined function Foo\bar\subnamespace\foo() in F:\www\try\2.php on line 7

命名空间不能自动加载文件吗??

apsana

觉得有点乱,命名空间 ,函数,类 混淆了

你直接用
foo();
怎么样?

mailman

直接用foo 也不行。

Fatal error: Call to undefined function foo\bar\foo() in F:\www\try\2.php on line 7
PHP Fatal error:  Call to undefined function foo\bar\foo() in F:\www\try\2.php on line 7
mailman

应该是不支持,自动载入。

apsana

你用下面的类看看

apsana

laravel 好像 composer来实现的

box

谁说命名空间是这么用的……我也是醉了…………。命名空间不会自动加载东西的,你可以require那个文件进来,命名空间只是用来对各种代码进行分类的……也不能这么说……总之可以解决很多东西,比如同名函数冲突问题。但是绝对没有自动加载的功能,要自动加载请百度php 的autoload

snail

请阅读psr-4