thinkphp5错误:类型错误: Argument 1 passed to thinkHook::import() must be of the type array
点击进入视频教程
使用thinkPHP5的时候出现如下错误
类型错误: Argument 1 passed to thinkHook::import() must be of the type array, integer given, called in /data/php/college/thinkphp/library/think/App.php on line 509
问题原因分析
在我使用thinkphp5的
php think build
自动创建完项目的结构后出现了如下错误。那么问题应该就出在自动构建的文件中。其实通过以上的错误可以看出。出问题的地方就是Hook中执行import进行钩子的挂载时出问题了。这个问题的原因分析之前我们先来看看自动构建文件build.php的结构。
"frontend" => [
"__file__" => ["common.php", "config.php", "tags.php"],
"__dir__" => ["behavior", "controller", "model", "view"]
]
这个写法自然是没有问题的。但是在自动生成的问题件中有个一tags.php打开tags.php可以发现是一个空的PHP文件。
问题解决
问题就出在这儿
tags.php会在程序初始化时载入,载入后会去分析tags.php中的配置而且是不加判断直接传入到Hook的import中的。这样就会导致这样的一个错误。所以如果tags.php是留着项目后期使用的那么就需要这样来写返回一个空数组:
<?php
return [
];
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。