嗨,我在这里有一些简单的代码,据我所知,它应该可以正常工作,但它并没有,我很困惑为什么
//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 Cell = 0 Cellx = 0 F1 = 0 cell equals == o == F1 = 1
让我困惑的是第7位&#34; -1&#34; 我希望看到&#34; Row = 7&#34;不是&#34; -1&#34;因为$ row = 8我一直在java和C编程,最近刚刚接触PHP,但我已经做了多年的PHP,我认为这应该有效
我做错了什么
另一个问题 看if语句的数组/ cell = 0的值所以我也希望评估为false并回显这个
单元格不等于== o ==
但条件是评估为什么这是真的 我的想法是我设置$ path变量的方式
我只是想让它成为一个简单的二维数组$ path [$ a] [$ b]当我输出数组时它是否正确设置我看到了我期待的二维数组。
过去从来没有这么做过
答案 0 :(得分: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中进行评估和连接,你应该用括号括起评估语句,尽管这是一个不好的做法。最好预先计算值并在将它们发送到输出之前或在将它们与另一个值作为字符串连接之前将它们分配给值。