Problème de portée variable avec les instructions if (PHP)

Bien, il me semble avoir un malentendu avec la portée des variables en PHP, pardonnez mon manque de l'objet que je viens de Java, C# arrière-plan. En pensant que je pourrait faire de variables accessibles à des fonctions ou si les déclarations sont tout simplement en le plaçant à l'extérieur. Ci-dessous un extrait de ce que je suis en train de réaliser:

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 
}

Maintenant, ce que je suis en train de faire est de rendre les $m les valeurs d'une variable accessible à l'extérieur de la si les déclarations de son dans le $m variable utilisée dans le $sql_array[] déclaration. En C#, je voudrais simplement déclarer une variable en dehors de la boucle foreach et être capable de l'utiliser. Après avoir fait un peu de lecture sur le sujet, j'ai trouvé que l'utilisation de la global ou GLOBALS mots-clés ne fonctionne que si ma portée globale variable est d'assigner la valeur avant le foreach, et déclarant global $m pour obtenir cette valeur dans la boucle. Mais avec mon code actuel $m est d'une portée locale dans les instructions if et tout le monde déconseille de les utiliser. Maintenant, est-il une meilleure méthode de faire $m accessible à l' $sql_array[] déclaration?

source d'informationauteur Andre | 2010-11-05