-1

嗨,我这里有一些简单的代码,据我所知应该可以工作,但它没有,我很困惑为什么

//VARIABLES
$rowcount=15;
$colcount=15;
$path= array( array());
$startrow=8;
$startcol=7;
$row=$startrow;
$col=$startcol;

for ($a=0;$a<$rowcount;$a++) {
    for ($b=0;$b<$colcount;$b++) {
        $path[$a][$b]=0;
    }
}

echo"In case one ";
echo"<BR>";
echo " Col= ".$col;
echo " Row= ".$row-1;
echo " Col= ".$col;
echo " Cell= ".$path[$row-1][$col];
echo " Cellx= ".$path[7][7];
if($path[$row-1][$col]=="o") {
    echo " F1 = ".$flagOne;
        $flagOne="1";
        echo " cell equals ==o==";
        echo " F1 = ".$flagOne;
} else {
    echo " cell not equal ==o==";
}
echo"<BR>";  

这就是我得到的输出

万一

Col= 7-1 Col= 7 单元格= 0 Cellx= 0 F1 = 0 单元格等于 ==o== F1 = 1

令我困惑的是第 7 个点“-1”我希望看到“Row= 7”而不是“-1”,因为 $row=8

我一直在用 java 和 C 编程,最近几乎没有接触过 PHP,但我已经做 PHP 多年了,我认为这应该可以工作

我究竟做错了什么

作为查看 if 语句的另一个问题,数组/单元格的值 = 0 所以我也希望评估是错误的并回显这个

单元格不相等 ==o==

但条件是评估为真为什么这是我的一个想法是我设置 $path 变量的方式

我只是希望它是一个简单的二维数组 $path[$a][$b] 当我输出数组时它设置正确吗?我看到了我期望的二维数组。

过去从来不需要做这些

4

1 回答 1

1
$rowcount=15;
$colcount=15;
$path= array( array());
$startrow=8;
$startcol=7;
$row=$startrow;
$col=$startcol;

for ($a=0;$a<$rowcount;$a++) {
    for ($b=0;$b<$colcount;$b++) {
        $path[$a][$b]=0;
    }
}

echo"In case one ";
echo"<BR>";
echo " Col= ".$col;
echo " Row= ".($row-1);
echo " Col= ".$col;
echo " Cell= ".$path[$row-1][$col];
echo " Cellx= ".$path[7][7];
if($path[$row-1][$col]==0) {
    echo " F1 = ".$flagOne;
        $flagOne="1";
        echo " cell equals ==0==";
        echo " F1 = ".$flagOne;
} else {
    echo " cell not equal ==0==";
}
echo"<BR>";  

首先,不要在整个脚本中使用双引号。PHP中的双引号和单引号有特殊含义,请阅读有关此的手册。第二 - 字符“o”不为零。您可以清楚地看到,您正在尝试将零与小写“o”匹配。此外,整数不需要在 PHP 中引用,就像在几乎所有语言中一样。检查您的字体设置以使它们彼此不同。第三 - 如果您在 PHP 中同时进行评估和连接,您应该用括号括住评估语句,尽管这是一种不好的做法。最好在将它们发送到输出之前或在将它们与另一个值作为字符串连接之前预先计算值并将它们分配给值。

于 2012-09-07T06:27:02.910 回答