2017-06-02 114 views
-1

我有这段代码。注意:对已定义的变量使用未定义的常量

$rollcount=0; 
    $rollcounts=array(); //I define $rollcounts here 
    $number_of_tries = 100; 

    foreach(range(0,$number_of_tries-1) as $i){ 
     do{ 
     $roll=rand(1,6); 
     $rollcount++; 
    }while($roll!=6); 
    array_push($rollcounts, $rollcount); 
    $rollcount = 0; 
    } 

    $freqs = array(); 
    while (!empty($rollcounts)){ 

     $freq = count(array_filter($rollcounts,function($a) use ($rollcounts) 
      {return $a == $rollcounts[0];} 
     )); 
     $freqs[$rollcounts[0]] = $freq; 
     for($i=0;$i<count($rollcounts);$i++){ 

      if(rollcounts[$i] == $rollcounts[0]){ // THIS IS LINE 40 
       unset($rollcounts[$i]); 
      } 

     } 

    } // redo until $rollcounts is empty 

即生成此错误消息(线40已在代码注释)

说明:使用未定义的常量rollcounts的 - 假定 'rollcounts' /应用程序/ XAMPP/xamppfiles/htdocs中第40行

显然/learningphp/myfirstfile.php ,$rollcounts已经在代码中定义。那么这里有什么问题?

+0

缺少一个变量标识符'$',所以PHP认为这是一个常数。看看错误,这是一个未定义的*常量*,而不是未定义的变量。 – Qirel

回答

2

你忘了$

旧代码

 if(rollcounts[$i] == $rollcounts[0]){ // THIS IS LINE 40 
      unset($rollcounts[$i]); 
     } 

新代码

 if($rollcounts[$i] == $rollcounts[0]){ // THIS IS LINE 40 
      unset($rollcounts[$i]); 
     } 
+0

干杯的人。菜鸟失明。 – Sahand