为什么 Smarty 会删除对使用 PHP 函数作为修饰符的支持?

问题描述 投票:0回答:1

切换到 PHP 8.2 和 Smarty 4.3 后, 我收到很多弃用警告,例如

PHP 已弃用:已弃用使用 php 函数“substr”作为修饰符,并将在未来版本中删除。使用 Smarty::registerPlugin 显式注册自定义修饰符

此消息适用于 substr、rand、mt_rand、json_encode 等。

为什么 PHP 函数被删除,有没有一种简单的方法可以从 Smarty 存储库取回函数,或者每个 Smarty 用户都必须自己编写这些函数?

它们真的很有用......

php smarty
1个回答
0
投票

可以用非常简单的方法解决,你只需这样做:

$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)}
© www.soinside.com 2019 - 2024. All rights reserved.