<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>闰年计算方法</title>
</head><body>
<form action="runnian.php" method="get">
<fieldset><legend>闰年计算器</legend>
<p>请输入你要查询你年份:<input name="year" type="text" /></p>
<?
if (isset($_REQUEST['year']))
    {  $year=$_REQUEST['year'];
if (is_numeric($year))
{
   if(($year%400 == 0)|($year % 4 == 0)&($year % 100 != 0))
{
echo "<p>{$year}年是闰年</p>";
}
else
{
echo "<p>{$year}年不是闰年</p>";
}
}
else
{
echo "<p>年份应该是数字</p>";
}

}
?>
</fieldset>
<p><input name="" type="submit" value="提交" />&nbsp;</p>
</form></body>
</html>
这个代码中 echo "<p>{$year}年是闰年</p>";这一句必须对$year加上大括号,不然运行起来会提示Notice: Undefined variable: year年是闰年 in D:\PHPnow-1.5.1\htdocs\runnian.php on line 19大侠们说说到底是怎么回事啊

解决方案 »

  1.   

    如果是 echo "<p>$year年是闰年 </p>";
    运行起来会提示 
    Notice: Undefined variable: year年是闰年 in D:\PHPnow-1.5.1\htdocs\runnian.php on line 19 
      

  2.   

    用“点”来连接变量,这么写试试:
    echo "<p>".$year."年是闰年</p>";
      

  3.   

    不加大括号变量就变成year+后面的汉字了…
      

  4.   

    if(($year%400 == 0)|($year % 4 == 0)&($year % 100 != 0))
    弱弱地问一句这句可以写成这个不
    if(($year%400 == 0)||($year % 4 == 0)&&($year % 100 != 0))
      

  5.   

    echo "<p>".$year."年是闰年 </p>";这样就可以
      

  6.   

    PHP对中文拥有比较好的支持,最有意思的事,PHP还能够使用汉字作为变量名称,例如:$我是变量。
    在编程的时候使用中文变量,能够使程序展示更具可读性,这无疑是一个好消息,但对于习惯于c、java编程语言的程序员们来说,若是对PHP没有一个很好的了解,就会出现一些麻烦。
    学过PHP的人都知道,PHP能够对双引号(")中的变量进行解释,例如:
    $a = "hello";
    echo "$a";
    运行结果为: hello
    这样一来,在编程中我们可以更加灵活的引用PHP变量。与此同时,一个问题也出现了,当我们在输出一句含有中文的语句时,常常会忽略这个问题。请看下面的例子:
    $name = "萝卜头";
    echo "$name你好";
    经过测试我们发现没有出现预期想要的结果:萝卜头你好
    这是为什么呢?就是由于PHP对中文变量的支持,导致程序在解释执行时,没有将$name作为一个变量名,而是将“$name你好”整体作为一个变量名。
    解决解决这个问题办法通常是,给变量加上括号{},或者在变量与文本之间加上一个空格。