2010-06-10 65 views
2

在Smarty中,在引用數組中的索引時遇到了一些問題。我相信這是因爲我用作索引的變量是一個字符串。我怎樣才能將這個字符串作爲模板中的整數?如何在Smarty中將整數值轉換成Smarty

謝謝。

+1

......認真嗎?在Smarty完成了將PHP的演示文稿**之後的所有工作後,您現在想要將邏輯**轉儲爲**它?! – 2010-06-10 21:36:30

+4

我正在尋找答案,而不是一個巨魔。謝謝。 – lafoaug 2010-06-10 21:38:37

+0

你可以展示一些示例代碼 - 它有點難以完全理解你想要做什麼 – thetaiko 2010-06-10 21:39:57

回答

2

documentation顯示了很多使用示例,特別是關於訪問數組元素。

{$foo}  <-- displaying a simple variable (non array/object) 
{$foo[4]}  <-- display the 5th element of a zero-indexed array 
{$foo.bar} <-- display the "bar" key value of an array, similar to PHP $foo['bar'] 
{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar] 
{$foo[bar]} <-- syntax only valid in a section loop, see {section} 
0

我認爲,這是因爲 可變我使用的指標是 串

我不這種信念同意:

$arr = array('a'); 
$i = '0'; 
echo $arr[$i]; // echos a 

我覺得問題在於別處。如果你還有其他問題,你應該包括一些你的代碼。

0

如果它已經分配給一個變量,說是$ var,你可以設置一個變量的這樣類型:

{$converted = settype ($var, 'integer')} 

您不必使用$轉換值,但如果你不分配它,布爾將顯示在你的頁面中。

8

如果我理解正確的問題,{$變量| INTVAL}

+0

yepp,就是這樣。既然你可以使用任何PHP函數,你也可以使用intval。 (雖然我必須承認我首先想到如何在smarty中使用(int)$ s) – 2014-12-03 15:51:16

+0

@ZsoltSzilagy但是這比'(int)$ var'更好嗎?如果是這樣,爲什麼? – 2015-09-01 20:29:06

0

,因爲我不允許評論(DOH),我只想說,@webbiedave代碼是在PHP正確,但智者它不工作。我剛剛花了太多的時間試圖弄清楚爲什麼我沒有從模板中的數組訪問數據,我發現我有整數鍵的數組,我在smarty中用於鍵的參數是字符串,所以它沒有按預期工作。我這樣解決:

<!--{debug says} 
    {$item}=> Array (2)  
     name=> "lalala" 
     id => "123" 
     ... 

    {$arrays} => Array (7) 
     123=> Array (3) 
      other_part_i_care=> "bebebe" 
      ... 
--> 
{$arrays[$item.id].other_part_i_care} <!--this doesnt return anything--> 

{assign var='item_id' value=$item.id} <!--my guess here it gets interpreted as int --> 
{$arrays[$item_id].other_part_i_care} <!--this return expected outcome-->