如何将此 Smarty 代码转换回 PHP?

发布于 2024-11-08 02:54:13 字数 605 浏览 0 评论 0原文

据我了解,Smarty 包含许多与 PHP 相同的内置函数。

如何将下面的代码转换回原生 PHP? “节”类似于 for 循环吗?

<table width="400" border="0">
    {section name=x loop=$records}
    <tr>
        {section name=y loop=$records[x]}
        <td align="right">
            <input type="checkbox" name="{$records[x][y].prefkey}" {if $records[x][y].prefval eq "on"}checked{/if} />
        </td>
        <td align="left">
            <strong>&nbsp;{$records[x][y].prefkey}</strong>
        </td>
        {/section}
    </tr>
    {/section}
</table>

From my understanding, Smarty includes a number of built-in functions that have equivalencies in PHP.

How do I convert the code below back to native PHP? Is the "section" similar to a for loop?

<table width="400" border="0">
    {section name=x loop=$records}
    <tr>
        {section name=y loop=$records[x]}
        <td align="right">
            <input type="checkbox" name="{$records[x][y].prefkey}" {if $records[x][y].prefval eq "on"}checked{/if} />
        </td>
        <td align="left">
            <strong> {$records[x][y].prefkey}</strong>
        </td>
        {/section}
    </tr>
    {/section}
</table>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遥远的绿洲 2024-11-15 02:54:13

下面是一个示例,为数据对象使用简单数组:

<?php                                                                                               
// generate some test data                                                                          
$records = array(                                                                                   
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"on"),                                                    
        array('prefkey'=>"bar",'prefval'=>"off"),                                                   
    ),                                                                                              
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"off"),                                                   
        array('prefkey'=>"bar",'prefval'=>"off"),                                                   
    ),                                                                                              
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"off"),                                                   
        array('prefkey'=>"bar",'prefval'=>"on"),                                                    
    ),                                                                                              
);                                                                                                  
?>                                                                                                  
<table width="400" border="0">                                                                      
<?php for($x=0; $x<count($records); $x++){ ?>                                                       
<tr>                                                                                                
    <?php for($y=0; $y<count($records[$x]); $y++){ ?>                                               
        <td align="right">
        <input type="checkbox" name="<?=$records[$x][$y]['prefkey']; ?>" <?=($re                    
cords[$x][$y]['prefval'] == "on"? "checked" : "") ?>/></td>                                         
        <td align="left">                                                                           
            <strong> <?=$records[$x][$y]['prefkey']; ?></strong>                               
        </td>                                                                                       
        <?php }?>                                                                                   
</tr>                                                                                               
<?php }?>                                                                                           
</table>

如果数据包含在实际对象中,则需要更改访问器语法。

Here is an example, using simple arrays for your data objects:

<?php                                                                                               
// generate some test data                                                                          
$records = array(                                                                                   
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"on"),                                                    
        array('prefkey'=>"bar",'prefval'=>"off"),                                                   
    ),                                                                                              
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"off"),                                                   
        array('prefkey'=>"bar",'prefval'=>"off"),                                                   
    ),                                                                                              
    array(                                                                                          
        array('prefkey'=>"foo",'prefval'=>"off"),                                                   
        array('prefkey'=>"bar",'prefval'=>"on"),                                                    
    ),                                                                                              
);                                                                                                  
?>                                                                                                  
<table width="400" border="0">                                                                      
<?php for($x=0; $x<count($records); $x++){ ?>                                                       
<tr>                                                                                                
    <?php for($y=0; $y<count($records[$x]); $y++){ ?>                                               
        <td align="right">
        <input type="checkbox" name="<?=$records[$x][$y]['prefkey']; ?>" <?=($re                    
cords[$x][$y]['prefval'] == "on"? "checked" : "") ?>/></td>                                         
        <td align="left">                                                                           
            <strong> <?=$records[$x][$y]['prefkey']; ?></strong>                               
        </td>                                                                                       
        <?php }?>                                                                                   
</tr>                                                                                               
<?php }?>                                                                                           
</table>

If the data is contained in actual objects, you'll need to change the accessor syntax.

爱殇璃 2024-11-15 02:54:13

{section name=x loop=$records}{section}

相当于 foreach(array_keys($records) as $x) { }

this {section name=x loop=$records}{section}

is equivalent to foreach(array_keys($records) as $x) { }

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文