php函数问题

下面代码:<?php$months=array(1=>'January','February','March','April','May','June','July','... 下面代码:
<?php
$months = array (1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
function make_calendar_pulldowns() {
foreach ($months as $key => $value) {
echo "<option value=\"$key\">$value</option>\n";
}
}
make_calendar_pulldowns();
?>
当我运行时,出现错误提示:
Warning: Invalid argument supplied for foreach() in D:\wamp\www\test\test.php on line 5
但当我把$months 的定义放在function里面时,就工作正常了,请问这是为什么?
$months 的定义在function里面和外面有什么区别?
展开
 我来答
leiniao_19
2011-09-16 · TA获得超过176个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:184万
展开全部
就是局部变量和全局变量的区别了,函数内部的是局部变量,所以在你的函数
function make_calendar_pulldowns() {
foreach ($months as $key => $value) {
echo "<option value=\"$key\">$value</option>\n";
}
}
这里面的 $months 只是个局部变量,因为php是弱语言,所以你可以在函数里面不声明 $months而直接使用,但并不影响 $months 是个局部函数的特征,你在函数里面也可以用
$months = global $months;//把全局变量的值赋进来
foreach ($months as $key => $value) {
echo "<option value=\"$key\">$value</option>\n";
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式