2011-02-12 65 views
1

在自我尴尬的风险,任何人都可以告诉我如何在这里使用return从PHP函数返回一个数组,Smarty的

function dayCount() { 

    for ($dayBegin = 1; $dayBegin < 32; $dayBegin++) 
    { 
     "<option value=\"".$dayBegin."\">".$dayBegin."</option>"; 
    } 
} 

我的问题是,我通过

通过这个功能给Smarty
$dayCount = dayCount(); 
$smarty->assign('dayCount', $dayCount); 

{$dayCount} 

而是将HTML直行到缓冲区,右befo <html>(感谢Hamish),而不是我想要的HTML元素。

对此有何帮助?

回答

2

你需要建立return语句

function dayCount() { 
    $return = array(); 
    for ($dayBegin = 1; $dayBegin < 32; $dayBegin++) 
    { 
     $return[] = "<option value=\"".$dayBegin."\">".$dayBegin."</option>"; 
    } 
    return $return; 
} 

虽然这是建立一个数组就像你问。输出时,你需要将它撞碎。

implode('', $dayCount); 

否则,建立一个字符串而不是数组。

+0

雅各,你钉了它!非常感谢您的帮助 - 这是一种享受。我曾尝试过几个使用`return`的版本,但它们总是输出'array' - 'implode`总是丢失! – pepe 2011-02-12 04:31:34