thinkphp5错误:类型错误: Argument 1 passed to think\Hook::import() must be of the type array

  • A+
所属分类:PHP

使用thinkPHP5的时候出现如下错误

类型错误: Argument 1 passed to think\Hook::import() must be of the type array, integer given, called in /data/php/college/thinkphp/library/think/App.php on line 509

问题原因分析

在我使用thinkphp5的自动创建完项目的结构后出现了这个错误。那么问题应该就出在自动构建的文件中。其实通过以上的错误可以看出。出问题的地方就是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 [
 
];

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: