php脚本中特定行的PHP别名?

时间:2012-04-18 20:22:20

标签: php alias

我正在处理我的应用程序的安全级别,我编写了一个简单检查的功能 - 取决于它的会话用户ID他/她有什么样的特权。它工作正常,但在某些页面中,如果用户是超级用户,我想输出一些信息,如果用户是访客,则禁止输出信息。

我用这样的语法做到了:

1. <? if admin('superuser', $_SESSION['user_id'])  { ?>
2. <div></div>
3. <? } ?>

它运作良好,但它不优雅,如果在卷曲括号之间的长代码,它与我的代码的纯度有关。 有没有办法将第1行和第3行“别名”为某种快捷方式,即

1. <? admin_superuser ?>
2. <div></div>
3. <? admin_super_user_end ?>

也许您还有其他想法来执行此类安全级别?

这个想法来自ob_start()和ob_end()命令。 我在等你的想法。

Kalreg。

3 个答案:

答案 0 :(得分:4)

您只需在页面开头设置一个bool:

$isSuperUser = admin('superuser', $_SESSION['user_id']);

然后,就这样做

<? if ($isSuperUser) { ?>
<div></div>
<? } ?>

如果你不喜欢$,你可以定义一个常量:

define("SUPERUSER", admin('superuser', $_SESSION['user_id']));

然后,就这样做

<? if (SUPERUSER) { ?>
<div></div>
<? } ?>

关于常量的好处是它是全局的,如果在函数中使用,则不必先将其声明为全局,或将其作为参数传递。

答案 1 :(得分:3)

我会选择这样的东西。我认为这完全可以接受 为了简化它,您只需要为您的用户提供一个包装器。

<?php if ($user->isAdmin()): ?>
<div></div>
<?php endif; ?>

答案 2 :(得分:2)

你可以包含另一个php文件,其中包含带有“include”功能的相应html / php代码。我还建议使用<?php而不是<?因xml和ini设置而导致的短期开放标记问题。