不为空的变量表示未定义的变量

Variable that is NOT empty saying undefined variable

请查看下面的代码。

        $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'] 的部分是在说它是一个未定义的变量。但是我注释掉了它下面的代码..如果我取消注释它,它就完美了。

你在使用它之前没有定义$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']; 而在这种情况下它没有找到 var $totalCost