2016-01-06 40 views
-1

請檢查下面的代碼。變量不爲空,表示未定義的變量

 $key = $_SESSION['order_nums']; 
     $sqll = "SELECT * FROM `money` WHERE `order` = :key"; 
     $qq=$con->prepare($sqll); 
     $qq->bindvalue(":key", $key); 
     $qq->execute(); 


     $excel2 = PHPExcel_IOFactory::createReader('Excel2007'); 
     $excel2 = $excel2->load('nTest.xlsx'); // Empty Sheet 
     $excel2->setActiveSheetIndex(0); 
     $worksheet = $excel2->getActiveSheet(); 

     $Cno = '7'; 
     $COno = '7'; 
     $MSno = '7'; 
     $CHno = '7'; 
     $ALno = '7'; 


     while($fdata=$qq->fetch(PDO::FETCH_ASSOC)) 
     { 

       $totalCost += $fdata['cost']; 


       /* 
      $worksheet 
       ->setCellValue('A' . $Cno++, $fdata['code']) 
       ->setCellValue('D' . $COno++, $fdata['cost']) 
       ->setCellValue('E' . $MSno++, $fdata['time']) 
       ->setCellValue('F' . $CHno++, $fdata['hourly']) 
       ->setCellValue('G' . $ALno++, $fdata['ot']);*/ 




     } 

好了,它說:$totalCost += $fdata['cost']代碼的一部分是說其一個未定義的變量。然而,我註釋下面的代碼。如果我取消註釋它,它的作品完美。

回答

4

你不使用它之前定義$totalCost變量,因此while循環$totalCost = 0;

$totalCost = 0; 
while($fdata=$qq->fetch(PDO::FETCH_ASSOC)) 
     { 

       $totalCost += $fdata['cost']; 


       /* 
      $worksheet 
       ->setCellValue('A' . $Cno++, $fdata['code']) 
       ->setCellValue('D' . $COno++, $fdata['cost']) 
       ->setCellValue('E' . $MSno++, $fdata['time']) 
       ->setCellValue('F' . $CHno++, $fdata['hourly']) 
       ->setCellValue('G' . $ALno++, $fdata['ot']);*/ 




     } 

因爲該行$totalCost += $fdata['cost'];意味着$totalCost = $totalCost + $fdata['cost'];你應該外面定義它,在這種情況下,它沒有發現變種$totalCost

+0

耶穌,我不想錯過簡單的事情。謝謝。 – Kmiles1990123

+0

正確。您可以爲變量賦值,但添加運算符會拋出警告。 – TecBrat