尝试回显时未定义的变量(但已定义)

时间:2019-07-25 21:56:55

标签: php

我正在尝试在php中创建日历。 第一步,我只是愿意制作一个函数来回显我的变量,但到目前为止还没有奏效。

但是,在该功能之外一切正常。

我试图先声明$ month,所以它不是空的。 我还尝试将use关键字放入函数中,但无法正常工作,就像将$ months声明为全局变量一样。

我真的无法正常工作,在此先感谢您的帮助。

这是我的.php代码:

<?php

$months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
echo $months[0];

$month = 1;
echo $month;
echo $month - 1;
echo $months[$month - 1];

function afficherMois($month){
    if ($month < 1 || $month > 12){
        echo "Le mois n'est pas bon";
    }
    else {
        echo $months[$month - 1];
    }
}
afficherMois(3);
?>

这是我得到的错误:

Notice: Undefined variable: months in C:\wamp64\www\VELO\date.php on line 16

第16行对应于echo $months[$month - 1];

1 个答案:

答案 0 :(得分:1)

您无法在函数内部回显变量months,因为它是在外部定义的,这是不同的作用域。

您可以添加第二个参数,将$months变量传递给函数,以便可以使用其内容

function afficherMois($month, $months){
    if ($month < 1 || $month > 12){
        echo "Le mois n'est pas bon";
    }
    else {
        echo $months[$month - 1]; // Will be defined now
    }
}