使用条件语句时得到空白输出

Getting a blank output when using conditional statement

我正在尝试使用名为 name 的变量通过 smarty 运行 条件语句,但是当 php 文件为 运行 时没有任何显示。我是 smarty 的新手。我可能犯了什么错误?

Test.php

<?php
    require_once('./libs/Smarty.class.php');

    $smarty = new Smarty();

    $smarty->assign('title','Title of the page');
    $smarty->assign('hello','Text displayed from smarty!!');
    $smarty->assign('name','is smarty');
    $smarty->display('./template/template.tpl');

?>

Template.tpl

<html>

<head> 
    <title> {$title} </title>
 </head>

<body>
    {$hello}

    {if $name eq "smarty"}
        <span> The name is : smarty</span>
    {/elseif $name eq "is smarty"}
        <span> The name is : is smarty</span>
</body>

在模板中分配变量本质上是将应用程序逻辑放入可能在 PHP 中更好地处理的表示中。

$smarty->assign('name', 'is smarty');

在smarty对象中赋值的变量只能在模板中获取。

如果您只给出 $name = '' 则特定变量不会分配给 smarty 模板。

所以请在逻辑中分配变量并在表示中获取值

并确保在 smarty 模板页面中使用 {elseif} 而不是 {/elseif} 并关闭 {/if} 语句

在你的 .tpl 文件中使用类似这样的条件

{if $name eq "smarty"}
        <span> The name is : smarty</span>
    {elseif $name eq "is smarty"}
        <span> The name is : is smarty</span>
    {else}
    Welcome, whatever you are.
    {/if}

在 Smarty 中阅读更多关于 if else 的内容 click here

您忘记关闭模板中的 {if} 块:

<html>

<head> 
    <title> {$title} </title>
 </head>

<body>
    {$hello}

    {if $name eq "smarty"}
        <span> The name is : smarty</span>
    {/elseif $name eq "is smarty"}
        <span> The name is : is smarty</span>
    {/if}   {* <------ here ---- *}
</body>

当没有显示任何内容时,您可以在调用 display() 之前通过设置 $smarty->error_reporting to E_ALL & ~E_NOTICE 来调试模板。