Php 我如何在smarty中使用这样的语句?

Php 我如何在smarty中使用这样的语句?,php,smarty,Php,Smarty,阵列似乎不能在smarty中使用 我试过各种方法,但都不管用 有人知道这个诀窍吗?据我所知,在smarty中没有设置数组的原生方法。您可以在php中将数组分配给smarty templete,并称之为page 然后像这样在smarty中访问它 {assign var=tmp_url value=setURI(array('page' => 1))} 或者你可以使用一个插件。在这方面还有其他一些选择,但我不确定什么对你最合适。您可能需要找到另一种方法来执行您想要的操作或以某种方式修改函数,

阵列似乎不能在smarty中使用

我试过各种方法,但都不管用


有人知道这个诀窍吗?

据我所知,在smarty中没有设置数组的原生方法。您可以在php中将数组分配给smarty templete,并称之为page

然后像这样在smarty中访问它

{assign var=tmp_url value=setURI(array('page' => 1))}
或者你可以使用一个插件。在这方面还有其他一些选择,但我不确定什么对你最合适。您可能需要找到另一种方法来执行您想要的操作或以某种方式修改函数,以便它可以接受一个字符串

您可以使用标记来分配其中的变量值:

 {assign var=tmp_url value=setURI($page[1])}
试试这个

在php文件中,编写一个函数

<h1>Foo!{$var}</h1>
{php}
$this->assign('tmp_url', setURI($page[1]));
{/php}
<a href={$tmp_url}">bar</a>

这与您的问题无关,但您可能希望有一天放弃Smarty,使用PHP模板。你不会遇到这样的问题。你能给我们更多关于你想做什么的信息吗?为什么您要在smarty中定义一个数组来传递回存储为变量的php函数?我真的认为无论你做了什么错事,你都要去做way@mcgrailm,因为setURI需要一个数组作为参数。我没有做错,相信我…除非我看错了文件,它只需要一个字符串,你能给我更多关于你用它们做什么的范围的细节吗?url,它将从哪里来,它将被使用for@mcgrailm,setURI是我自己的函数..我需要在模板中调用它。如果你尝试,$this->assign将失败。然后尝试类似$smarty->assign的操作。本例中的$1来自smarty文档。
<?php
 function getSetUri(){
   return setURI(array('page' => 1));
 }
?>
{assign var=tmp_url value=getSetUri()}