PHP 的 use function 提示方法不能存在。

新手上路,请多包涵

PHP 的 use function 提示方法不能存在

controller.php

namespace App\Http\Controllers;

use function App\Http\Controllers\helper;

class WelcomeController
{
    public function test() {
        helper();
    }
}

function.php

namespace App\Http\Controllers;

function helper()
{
    return 1;
}

报错
Call to undefined function AppHttpControllershelper()

阅读 4.3k
2 个回答

我们先来说错误.你的错误有以下几点.

* 路径不合法.不符合psr4的规范.

首先说路径不合法.psr4的规范我就不说了,来说实际.你引入use function App\Http\Controllers\helper时,会自动在已加载的方法中去找有这个命名的没有,如果没有就自动报错了.
如果不懂这个,请去查看psr4自动加载规范.

---- WelcomeController.php ----
namespace App\Http\Controllers;

use function App\Http\helper;

class WelcomeController
{
    public function test() {
        var_dump(helper());
        var_dump(backend());
    }
}

app->Http->function.php

namespace App\Http;
function helper(){
    return '1';
}
// 这样或许会更容易理解点
namespace App\Http{
    function helper(){
        return '1';
    }
}

composer.json文件

"autoload":{
    "psr-4":{
        "App\\":"app/",
        "App\\Http\\":"app/Http/",
        "App\\Http\\Controllers\\":"app/Http/Controllers"
    },
    "files":[
        "app/Http/function.php"
    ]
}

目录结构

├── app
│   └── Http
│       ├── Controllers
│       │   └── WelcomeController.php
│       └── function.php
├── composer.json
├── index.php

require或者include这个文件了么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题