切换到 PHP 8.2 和 Smarty 4.3 后, 我收到很多弃用警告,例如
PHP 已弃用:已弃用使用 php 函数“substr”作为修饰符,并将在未来版本中删除。使用 Smarty::registerPlugin 显式注册自定义修饰符
此消息适用于 substr、rand、mt_rand、json_encode 等。
为什么 PHP 函数被删除,有没有一种简单的方法可以从 Smarty 存储库取回函数,或者每个 Smarty 用户都必须自己编写这些函数?
它们真的很有用......
可以用非常简单的方法解决,你只需这样做:
$smarty->registerPlugin("modifier", "substr", "substr");
$smarty->registerPlugin("modifier", "rand", "rand");
$smarty->registerPlugin("modifier", "json_encode", "json_encode");
对于您需要的每个修饰符都是一样的。另一种选择是用函数的使用来替换修饰符,所以:
{$var|substr:0:10}
对此:
{substr($var,0,10)}