ThinkPHP自定义函数定义位置取决于版本:TP6唯一合法路径是app/common.php,需手动引入app/common/下拆分的函数文件;TP3.x则通过配置或显式引入Common/common.php等路径;模板中调用须用{|}语法且函数不能含$this或框架实例。
ThinkPHP 自定义函数的定义位置不是随便放的,关键看版本。TP6 和 TP3.x 完全不同,放错路径函数就根本不会加载,调用时直接报 Call to undefined function。
这是 TP6 唯一被框架自动加载的全局函数文件,没有之一:
namespace)、不能 use 类、不能 return/exit/dieif (!function_exists()) 包裹——它只加载一次composer dump-autoload 并清除缓存(如 php think clear:config)如果函数较多,可拆分为多个文件,但必须满足:
string.php、date.php,每个文件只写函数定义app/common.php 中 require_once 引入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() 等——模板渲染时无上下文