Php 为什么函数protect()中的变量不输出任何内容?
我写这段代码是为了读取登录用户的访问级别,以便根据登录用户的访问级别保护对页面的访问 and do函数具有Php 为什么函数protect()中的变量不输出任何内容?,php,mysqli,Php,Mysqli,我写这段代码是为了读取登录用户的访问级别,以便根据登录用户的访问级别保护对页面的访问 and do函数具有sessionloginid和$v但$v变量不输出任何内容 我需要在函数代码中编辑什么? 出现错误消息,如: 注意:未定义变量:v if(isset($_SESSION['sessionloginid']))// point to id of user logged in { $query = "SELECT * FRO
sessionloginid
和$v
但$v
变量不输出任何内容
我需要在函数代码中编辑什么?
出现错误消息,如:注意:未定义变量:v
if(isset($_SESSION['sessionloginid']))// point to id of user logged in
{
$query =
"SELECT *
FROM privilege
where login_id='".$_SESSION['sessionloginid']."' " ;
$access_level= array();
$result = mysqli_query($link,$query) or die('');
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$_SESSION['sessionloginid']= $row['login_id'];
$_SESSION['sessionaccess']= $row['AccessLevel'];//output
$access_level[]=$_SESSION['sessionaccess'];
print_r ($access_level);//Array([0]=>1)Array([0]=>1[1]=>2)
} }
foreach($access_level as $k => $v)
{
print_r($v) ;// output 12
}
function protect(){
if($_SESSION['sessionloginid']==true && $v !=1)
{
echo $v; //output nothing
}
}
protect($v);
您需要作为函数参数传入
$v
protect($v);
在它的当前范围内,一旦foreach循环结束,$v就不存在了。它只存在于循环中,因此您必须在循环中调用函数,或者将更高范围内的变量设置为该值,以便可以在其他地方使用。哪里是
$v
?哪儿也没有!这就是为什么它什么也不输出。如果您将错误报告设置为报告通知,您会看到这一点。缩进良好的代码可能也会使问题更加明显。谢谢您Glavić我使用全局变量和错误测量信息消失我编辑代码以匹配您的答案,但会出现错误消息说:注意:未定义变量:我假设您没有设置变量到五美元。再读一遍我说的谢谢我使用全局变量和错误度量信息消失好人!快乐编码