PHP函数,总是返回相同的输出



下面有一个代码,我经常在我的网站上使用(这是一个MyBB论坛(,还有一个特定的网页,我已经写了10多次了。

为了让代码更容易阅读,我决定把它变成一个函数,每次用不同的参数调用它。不幸的是,它不起作用,由于某种原因,我一直得到$fail代码,而没有函数,我得到$success。

这是我第一次使用PHP函数,但从我在w3schools读到的内容来看,理论上我应该做得很好。来练习的时候不多。介意检查一下我的语法并告诉我是否有错吗?

<?php
//function code
function canviewcheck($allowedgroups)
{
$groups = $mybb->user['usergroup'];
if ($mybb->user['additionalgroups']) {
$groups .= "," . $mybb->user['additionalgroups'];
}
$explodedgroups = explode(",", $groups);
$canview = 0;
foreach ($explodedgroups as $group) {
if (in_array($group, $allowedgroups)) {
$canview = 1;
echo $success;
break;
}
}
if (!$canview) {
echo $fail;
}
}
//Parameters that I want to use
$allowedgroups = [4, 19];
$pid = 'URL';
$success = "<a href=URL><span style='color:green; font-size:20px;'>SUCCESS</span></a>";
$fail = "<a href=" . $pid . "><span style='color:#DE1603; font-size:20px;'>FAIL</span>;</a>";
//Call to function
canviewcheck($allowedgroups, $pid, $success, $fail);

您需要向函数添加所有必要的参数,并且$mybb也需要作为参数传递。

函数中没有使用$pid,因此不需要将其作为参数传递。

<?php
//function code
function canviewcheck($allowedgroups, $success, $fail, $mybb)
{
$groups = $mybb->user['usergroup'];
if ($mybb->user['additionalgroups']) {
$groups .= "," . $mybb->user['additionalgroups'];
}
$explodedgroups = explode(",", $groups);
$canview = 0;
foreach ($explodedgroups as $group) {
if (in_array($group, $allowedgroups)) {
$canview = 1;
echo $success;
break;
}
}
if (!$canview) {
echo $fail;
}
}
//Parameters that I want to use
$allowedgroups = [4, 19];
$pid = 'URL';
$success = "<a href=URL><span style='color:green; font-size:20px;'>SUCCESS</span></a>";
$fail = "<a href=" . $pid . "><span style='color:#DE1603; font-size:20px;'>FAIL</span>;</a>";
//Call to function
canviewcheck($allowedgroups, $success, $fail, $mybb);

相关内容

  • 没有找到相关文章

最新更新