php - 为什么 smarty registerPlugin() 在 v3.1.30 左右停止 workgin?
问题描述
我从 smarty 迁移v3.1.29
到v3.1.33
并且我注册的插件停止工作。为什么?
我使用了这个语法:
$this -> registerPlugin ( "function", "tpl_func", "php_func" );
该行为仅在php 7.0
. 有了php 7.3.14
它仍然可以正常工作。
解决方案
问题不在于你在哪里调用函数,而是你在哪里定义它。
在较旧版本的 smarty 中,以下语法确实有效:
function php_func($params, &$smarty) {
return "blah";
}
在较新的版本中,这是不正确的。您应该使用这个(&
从第二个参数中删除):
function php_func($params, $smarty) {
return "blah";
}
smartyblock
和 smartyfunction
也是如此。
推荐阅读
- python - 关于如何存储数据的建议
- java - 将 Micronaut 与 Hashicorp Vault 连接起来
- c - 使用 termcaps 删除输出
- oracle - 在 Oracle PLSQL 中使用潜台词在文本中搜索
- java - Hazelcast Jet 与 Java 8 流
- javascript - 如何使用 Sequelize ORM 强制复合外键存在?
- android - 将 sqlite-net-pcl 与 Xamarin.Forms 一起使用时,创建连接的最佳做法是什么
- .net - 如何使用 Autofac 处理内部构造函数
- php - PHP Quickbooks API SDK - 报告
- python - 如何在使用递归时使用 Python 确保单词是回文?