gpt4 book ai didi

php - 使用Smarty,是否可以在方法的返回值上调用方法?

转载 作者:行者123 更新时间:2023-12-04 06:46:50 25 4
gpt4 key购买 nike

我有 Smarty 代码

{$obj->foo()->bar()}

Smarty 在表达式中提示“无法识别的标签”。如果我把它改成只是
{$obj->foo()}

它没有提示,所以我认为问题在于我正在根据方法的结果调用方法。这是 Smarty 解析器的限制,还是我在这里遗漏了其他东西?

我知道我可以通过 {assign} 解决这个问题,我只是想知道我是否正确理解了限制的范围。

最佳答案

您使用的是 Smarty2 还是 Smarty3?

Smarty2 将要求您使用 {assign}在第一种方法之后。如果您将多个参数传递给一个方法,它也会出现问题。

Smarty3 有一个完全重写的解析器,你可以做你想做的。您也不再需要 {assign} ,因为你可以简单地做 {$new_var = "Anything"} .

这是 Smarty3 中的测试:

我们的课

class Foo {
function boo() {
return new Boo();
}
}

class Boo {
function woo() {
return "woo!";
}
}

分配的模板变量
$foo = new Foo();
$tpl->assign('foo', $foo);

模板
{$foo->boo()->woo()}

浏览器输出
woo! 

关于php - 使用Smarty,是否可以在方法的返回值上调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3651703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com