php函数重新声明错误

时间:2013-03-30 00:08:18

标签: php

我有一个小代码,它绑定在一个函数中,用于生成用户级标记。例如,如果特定用户的数据库权限设置为9,则他/她是管理员,如果他/她是成员,依此类推。

这是函数

function user_level($user_level) {
                 if($user_level == 10) {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#065286;padding:2px 5px;border-radius:3px;'>System Root</span>";
                 } elseif($user_level == 9) {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#df4d28;padding:2px 5px;border-radius:3px;'>Admin</span>";
                 } else {
                     $level = "<span style='color:#fff;text-shadow:0px 1px 0px #000;font-size:14px;background:#008CD7;padding:2px 5px;border-radius:3px;'>Member</span>";
                 }
                 return $level;
            }

            $level = user_level($user_level);

现在这个函数在自定义论坛脚本中使用,所以初始发布的帖子让我们假设有一个回复。

可悲的是,回复没有显示,而是给了我

Fatal error: Cannot redeclare user_level() (previously declared in /home/u688392685/public_html/comet/viewtopic.php:156) in /home/u688392685/public_html/comet/viewtopic.php on line 156

我不确定最新情况,因为之前工作正常,我记得主机做了一些PHP更改,比如版本更新,但就是这样。有什么方法可以解决这个问题,让我回到正轨吗?

如果相对:Apache / 2.2.14,PHP 5.2.x

2 个答案:

答案 0 :(得分:2)

包含该功能的php文件可能包含在脚本中两次。

您可以分别用include(file.php);require(file.php);替换include_once(file.php);require_once(file.php);的任何出现来解决此问题。

答案 1 :(得分:0)

谢谢大家的帮助。

根据@Mario建议,我将该功能移动到目录中并使用

  

include_once

将该函数插入viewtopic.php