如何在CodeIgniter(CI)页脚模板中全局调用当前年份
附带问题解答
1. <?=语法是不是CI特有?
不是,这是PHP原生支持的短输出标签,等价于<?php echo ... ?>,只要PHP配置项short_open_tag开启即可使用,CI框架默认推荐该写法简化代码,不属于CI专属语法。
2. 数组末尾加逗号的原因是什么?
这是PHP 7.3及以上版本支持的数组尾随逗号特性,属于代码书写优化:
- 新增数组元素时不需要额外给前一行补逗号
- 版本控制的差异记录更干净,新增元素只会产生一行变更
- 没有功能层面的影响,去掉逗号代码也能正常运行。
3. 其他方案的使用说明
如果你不想用继承控制器的方案,也可以用自定义全局助手实现:
- 在
app/Helpers(CI4)或application/helpers(CI3)目录下新建common_helper.php:
if (!function_exists('get_current_year')) { function get_current_year() { // 静态变量保证单次请求仅计算一次年份 static $year; if (empty($year)) { $year = date('Y'); } return $year; } }
- 配置全局自动加载助手:CI4在
app/Config/Autoload.php的$helpers数组加入'common';CI3在application/config/autoload.php的$autoload['helper']数组加入'common'。 - 页脚模板直接调用即可:
<?= get_current_year() ?>
你之前直接在页脚写PHP代码不生效,大概率是没有用CI的view()方法加载页脚,或者页脚文件后缀不是.php,只要是通过CI视图加载的.php文件,内部的PHP代码都会正常解析。
内容的提问来源于stack exchange,提问作者youcantryreachingme
相关产品推荐
相关产品推荐

