为什么此代码会导致预期的“)”错误?

时间:2011-07-25 16:38:01

标签: php error-handling iteration syntax-error

<?php
  $i == array(1, 2); 
  $j == array(a, b); 
  $m == count($j); 
  $n == count($i); 
  for ( $i = 0; $i < $m; i++ ) 
  {
    for ( $j = 0; j < $n; j++) 
    { echo $i."x"$j; }
  }
?>

错误是引用第6行:for ( $i = 0; $i < $m; i++ )

3 个答案:

答案 0 :(得分:8)

for ( $i = 0; $i < $m; $i++ )

请注意我在i++

之前添加的美元符号

您的其他for声明也是如此:

for ( $j = 0; $j < $n; $j++ )

确实存在Wierd错误,但它i不是变量(虽然PHP可能会标记E_NOTICE并将其转换为'i'。您想要引用您的变量,因此您必须添加之前是$


最有可能的是:

<?php
  $iArray = array(1, 2); 
  $jArray = array('a', 'b'); 
  $n = count($iArray); 
  $m = count($jArray); 
  for ( $i = 0; $i < $n; $i++) {
    for ( $j = 0; $j < $m; $j++) { 
       echo $iArray[$i] . "x" . $jArray[$j]; 
    }
  }
?>

我改变的事情:

  • ==用于比较,=用于分配
  • 第二个数组我假设您想要字符串文字'a''b',但如果您在其他地方声明了这些变量,您可能也想要$a$b < / LI>
  • 您将$i分配给数组,但随后在for循环中用$i = 0覆盖它。你最有可能想要两个变量
  • 缺少$,就像我上面提到的那样
  • $m被用于$jArray中的变量数量,但您用它来迭代$iArray

所以只需要点几个指针就可以了解PHP,并尝试确保代码适用于每一个小小的变化。进行1次修改,然后运行它。 PHP的语法很容易丢失,因为它是一种动态脚本语言

答案 1 :(得分:3)

你有一堆平等检查。我假设你实际上是在分配变量而不是检查是否相等。

将所有==相等检查更改为分配(=)

答案 2 :(得分:1)

你在第9行也有不正确的连接,我添加了一个注释,指出了另一个可能的错误。

$i == array(1, 2); 
$j == array($a, $b); // <--Put in $ signs if these are variables in the array
$m == count($j); 
$n == count($i); 
for ( $i = 0; $i < $m; $i++ ) 
{
  for ( $j = 0; $j < $n; $j++) 
  { echo $i."x".$j; }
}