if 语句的变量作用域问题 (PHP)
2022-08-30 20:14:41
好吧,我似乎对PHP的可变范围有误解,原谅我缺乏这个主题,因为我来自Java,C#背景。认为我可以使变量可供函数访问,或者只需将其放在其外部即可使if语句访问。以下是我试图完成的一个片段:
foreach ($nm as $row=>$im) {
$itm_name = $im;
$lnk = $lnk_cty[$row];
if($mode == 'addMenu') {
$m = $m_id; //id will be coming from fresh insert of menu_name
} else {
$m = $_POST['mnu_add'][$row];
echo "MENU_ID: ".$m;
}
if($mode == 'addCat') {
$m = $c_id; //id will be coming from fresh insert of cat_name
} else {
$m = $_POST['cat_add'][$row];
}
//used for testing purposes
echo "item name: ".$itm_name ."<br />";
echo "lnk: ".$lnk ."<br />";
echo "m: ".$m ."<br />"; //$m is empty here, because its a new declaration as oppose to accessing $m value from if statement
$display_fields .= "<li>".$itm_name." ".$item."</li>";
$sql_array[] = '("' . $itm_name . '", "' . $lnk . '", ' . $m . ')'; // Add a new entry to the queue
}
现在,我试图做的是使变量值在 if 语句之外可访问,该变量值位于语句中使用的变量中。在 C# 中,我只需在 foreach 循环之外声明一个变量,并能够使用它。在对此事进行了一些阅读之后,我发现只有当我的全局范围变量在foreach之前分配值并在循环中获取该值时,使用global或GLELS关键字才有效。但是,我目前的代码在if语句中具有本地范围,每个人都不鼓励使用它们。现在,有没有更好的方法来使语句易于访问?$m
$m
$sql_array[]
global $m
$m
$m
$sql_array[]