PHP函数重新声明错误


php function re-declare error

我有一个小代码,它被绑定在一个函数中,用于生成用户级标签。例如,如果特定用户的数据库权限设置为9,则他/她是Admin,如果设置为0,则他/她是Member,等等。

函数

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

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

您可以通过将出现的include(file.php);require(file.php);分别替换为include_once(file.php);require_once(file.php);来解决此问题。

谢谢大家的帮助。

根据@Mario的建议,我将函数移动到一个目录中,并使用

include_once

将函数插入viewtopic.php