我在Php编写代码时遇到了一些错误:我写的是这样的条件:
if($showPrice != 0){
$worksheet->mergeCells('A'.$rowCount.':F'.$rowCount);
$worksheet->SetCellValue('A'.$rowCount, 'Total Weight');
$worksheet->SetCellValue('G'.$rowCount, $totalWeight);
}else{
$worksheet->mergeCells('A'.$rowCount.':D'.$rowCount);
$worksheet->SetCellValue('A'.$rowCount, 'Total Weight');
$worksheet->SetCellValue('E'.$rowCount, $totalWeight);
}
Run Code Online (Sandbox Code Playgroud)
我注意到,而不是写作!=我应该,我写错了=!没有任何错误.
这可能是什么原因?
您没有在PHP中发现任何错误.您在程序中发现了一个错误以及您对PHP的了解.
$x =! 0事实上,是$x = !0.
!是逻辑NOT运算符.
0被评价为FALSE在布尔上下文,因此!0是TRUE.
$x = ...是一项常规任务.作为任何作业,它做两件事:
!0,如上所述,评估为TRUE;$x = !0)的值是$x赋值后的值(TRUE如上所述).当赋值用作语句时,其值将被丢弃.当它用来作为条件(在一个for,while,if,switch语句),其值用于控制该代码的执行.
这里,if($showPrice =! 0)总是采用if分支(而不是else分支),因为$showPrice = !0表达式的值总是TRUE如上所述.
此外,在评估此语句之后,值$showPrice也会变为TRUE.
单行代码中的两个错误.
从PHP的角度来看,代码是完全有效的,即使它很不寻常,也许它代表了程序员的意图.口译员没有任何理由抱怨它.但是,它可以被静态代码分析工具和一些PHP IDE检测并标记为可能的错误.