0

我正在尝试做一些模板优化,我想知道是否可以做这样的事情:

function table_with_lowercase($data) {
    $out = '<table>';
    for ($i=0; $i < 3; $i++) { 
        $out .= '<tr><td>';
        $out .= strtolower($data);
        $out .= '</td></tr>';
    }
    $out .= "</table>";

    return $out;
}   

注意:运行此函数时,您不知道 $data 是什么。

结果是:

<table>
    <tr><td><?php echo strtolower($data) ?></td></tr>
    <tr><td><?php echo strtolower($data) ?></td></tr>
    <tr><td><?php echo strtolower($data) ?></td></tr>
</table>

一般情况:任何可以评估(编译)的都将是。任何时候存在未知变量,该变量和包含它的函数都会以字符串格式输出。

这里还有一个例子:

function capitalize($str) {
    return ucwords(strtolower($str));
}

如果 $str 是“HI ALL”,那么输出是:

  • 大家好

如果 $str 未知,则输出为:

  • <?php echo ucwords(strtolower($str)); ?>

在这种情况下,只调用函数(即。)会更容易<?php echo capitalize($str) ?>,但之前的示例将允许您预编译 PHP 以使其更高效

4

3 回答 3

1

这绝对是可能的。但是,为 php 编写一个有效的优化编译器并非易事。一个简单的可能不会提供显着的好处。一个好的好处甚至是值得怀疑的。

于 2010-03-08T03:12:57.783 回答
1

定义 CSS 样式并让客户端完成工作,而不是服务器端。

change_case {
    text-transform: lowercase; /* force text to lowercase */
    text-transform: uppercase; /* force text to uppercase */
    text-transform: capitalize; /* force text to proper case */
}

<span="change_case">...</span>

于 2010-03-08T02:36:20.410 回答
1

您最好的选择可能是使用单独的模板语言来生成优化的 PHP 代码。Smarty 是一个受欢迎的选择。

于 2010-03-08T03:18:53.790 回答