避免在模板中使用过多的if / else语句

时间:2014-01-26 15:33:47

标签: php templates

当有会员系统时,我们只为用户显示一些内容。例如,注册和登录按钮适用于尚未登录的非会员或用户。 Sametime,注销按钮仅适用于已登录的用户。

我使用之前创建的mvc系统。您为了避免使用if / else语句而创建了哪些类型的方法或类?

2 个答案:

答案 0 :(得分:1)

如果您使用了太多if/else语句,则可能没有使用模板继承。

基本上你有一个主模板:

<强> master.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
   @section('main')
   @endsection()
</body>
</html>

其他模板继承此模板

<强> user.html:

@extends('master')
@section('main')
<button>Connect</button>
@endsection

<强> visitor.html

@extends('master')
@section('main')
<button>Subscribe</button>
@endsection

大多数模板系统提供了一种模板继承,如Twig templating language

这个建议也适用于代码的其他部分,例如,如果你使用太多if else或switch case,你可能会创建继承当前类的类。

代码示例使用的语法受Laravel's Blade templating language

的启发

答案 1 :(得分:0)

即使重新加载页面,您也可以维护会话并每次都进行检查。

即登录或注册后,在会话中创建一个数组并存储t,然后检查该会话是否为空。如果该会话不为空,则表示用户已登录并在用户单击“注销”按钮后清除该会话。

通过这种逻辑,您可以处理所有操作。