2011-07-25 45 views
1
<?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++)为什么此代码会导致预期的“)”错误?

+0

'{echo $ i。“x”$ j; }'这里的语法错误 - ''x“'和'$ j'之间没有操作符。 –

回答

8

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

注意我之前i++

同样增加了美元符号去为其他for声明:

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

奇怪的错误,但它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]; 
    } 
    } 
?> 

的事情,我改变了:

  • ==用于比较,=用于分配
  • 第二阵列I假设你想要字符串文字'a''b',但你也可以想要$a$b如果您在其他地方声明这些变量
  • 您将$i分配给一个数组,然后在for for循环中用$i = 0覆盖它。您很可能希望两个变量
  • 失踪$ S,就像我上面
  • 提到
  • $m正在使用的变量$jArray数,但你用它来遍历$iArray

所以只是几个指针,刷上你PHP,并尝试确保你的代码适用于每一个小的变化。进行1次修改,然后运行它。 PHP语法很容易丢失,因为它是如此动态的脚本语言

+2

我很难把它叫做'怪异',如果一个常量(如果不是通知),'i ++'不会,所以它说“而不是'++',我希望' )'”。 – Wrikken

+1

有些人在这里也告诉我。我一直在看它,实际上看到了$符号。这不奇怪吗?我越看着它,它就越像是一个美元符号。然后突然间,它袭击了我。没有任何美元符号! –

+1

无论如何,我注意到的问题,感谢你,是:使用太少的变量,不把$放在变量之前,不正确地使用等号运算符,并且不在我的字符串文字周围加引号。由于缺少$,导致T_INC错误。谢谢。 –

3

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

改变这一切==平等检查作业(=)

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; } 
} 
+0

哦,你是指失踪者。?我在最后选择了这个。多酷,你首先注意到它。 :) –

相关问题