日期:2014-05-16  浏览次数:20511 次

又有问题出现了-。-
本帖最后由 u014270083 于 2014-03-23 00:17:51 编辑
<?php
require 'index.html'; //require 与 include 的区别在于前者出错,不再运行程序
function test(){
if(isset ($_POST[c]) && isset ($_POST[d])){
$a=$_POST[c];
$b=$_POST[d];
}
if($a<$b){
return 1; //return 返回函数值之后,终止函数脚本运行,不再运行余下语句
}
return -1;
}
$res=test();
if($res==1){
echo '$x<$y';
}
else{
echo '$x>$y';
}
?>



话说,以上代码似乎没有什么错误吧-。-,这个错误提示具体是什么原因?还是PHP服务器设置的问题?期待高手,俺是新手

$_POST[c] 修改成 $_POST['c']之后,提示是这样的:

何解?
------解决方案--------------------
$_POST["c"]
$_POST["d"]
------解决方案--------------------
$_POST[c]都加引号
------解决方案--------------------
除非你屏蔽掉 E_NOTICE 级别错误检查
否则
数组的关联键需要用引号括起 $_POST["c"]、$_POST["d"]
$a、$b 的赋值在条件分支内,如果不是表单提交则他们就不存在


------解决方案--------------------
正确的写法是
<?php
require 'index.html'; 
function test() {
  $a = $b = 0;
  if(isset ($_POST['c']) && isset ($_POST['d'])){
    $a=$_POST['c'];
    $b=$_POST['d'];
  }
  if($a<$b){
    return 1;
  }
  return -1;
}
$res=test();
if($res==1){
  echo '$x<$y';
}else{
  echo '$x>$y';
}
?>