最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ThinkPHP函数定义位置在哪_文件位置详细说明
时间:2026-07-21 09:31:49 编辑:袖梨 来源:一聚教程网
ThinkPHP自定义函数定义位置取决于版本:TP6唯一合法路径是app/common.php,需手动引入app/common/下拆分的函数文件;TP3.x则通过配置或显式引入Common/common.php等路径;模板中调用须用{|}语法且函数不能含$this或框架实例。
ThinkPHP 自定义函数的定义位置不是随便放的,关键看版本。TP6 和 TP3.x 完全不同,放错路径函数就根本不会加载,调用时直接报 Call to undefined function。
TP6 唯一合法路径:app/common.php
这是 TP6 唯一被框架自动加载的全局函数文件,没有之一:
- 必须放在 app/ 目录下(注意是小写 app,不是 App 或 application)
- 文件名必须是 common.php(不是 _common.php、helper.php、functions.php)
- 不能有任何命名空间声明(
namespace)、不能 use 类、不能 return/exit/die - 函数定义后无需加
if (!function_exists())包裹——它只加载一次 - 修改后需运行
composer dump-autoload并清除缓存(如php think clear:config)
TP6 多文件组织方式:app/common/ 目录
如果函数较多,可拆分为多个文件,但必须满足:
- 目录路径为 app/common/(注意末尾无 .php)
- 子文件如
string.php、date.php,每个文件只写函数定义 - 每个文件内仍不能有 namespace、class、return 语句
- 这些文件不会自动加载,需手动在
app/common.php中require_once引入
TP3.x 的常见路径:Common/common.php 或配置引入
TP3.x 不依赖固定路径,而是靠配置或显式引入:
立即学习“PHP免费学习笔记(深入)”;
- 传统做法是把函数写在
Application/Common/Common/function.php(大小写敏感) - 然后在配置中设置
'LOAD_EXT_FILE' => array('function') - 或者在控制器/模型里用
import('Common.Function');手动加载 - 也可通过
include或require直接引入任意路径的函数文件
模板中调用函数的特别限制
无论函数定义在哪,模板里都不能直接写 <?php echo xxx(); ?>:
- 单参数函数:写成
{$time|format_time} - 多参数函数:用
###占位原变量,例如{$text|truncate=20,###,'…'} - 函数签名必须严格匹配:参数顺序固定、不能有引用传参(
&$var)、必须有返回值 - 函数体内不能使用
$this、app()、db()等——模板渲染时无上下文
相关文章
- 恒星播放器自动搜字幕教学 07-28
- outlook附件大小如何设置 07-28
- 如何查看金山毒霸版本号 07-28
- premiere如何拆分文字 07-28
- 爱剪辑编辑视频方法 07-28
- OA系统快速发送私信技巧 07-28