gpt4 book ai didi

php - 了解php错误处理和代码执行

转载 作者:行者123 更新时间:2023-12-03 08:10:09 24 4
gpt4 key购买 nike

我正在尝试将php应用程序移植到.net,并在查看php代码时遇到一个摘要,这有点令人困惑。如下图所示

$cur_xml_valid = 'N';                        
$GenerateXml[] = "<J>";
$seq ++;
$GenerateXml[] = "<ANumber>" . $seq . "</ANumber>";
$GenerateXml[] = "<Customer>" . str_replace(array('&','>','<','"','\''), array('&amp;','&gt;','&lt;','&quot;','&apos;'), $invoice['customer']) . "</Customer>";
$GenerateXml[] = "<CompletionDate>" . str_replace(' ', 'T', $invoice['DateCreated']) . "</CompletionDate>";
$GenerateXml[] = "<OrderNumber>" . $invoice['SO'] . "</OrderNumber>";
$GenerateXml[] = "<OrderType>" . $invoice['type'] . "</OrderType>";
$GenerateXml[] = "<Comments>" . str_replace(array('&','>','<','"','\''), array('&amp;','&gt;','&lt;','&quot;','&apos;'), $invoice['Comments']) . "</Comments>";
$cur_xml_valid = 'Y';

if ($cur_xml_valid == 'N') {
$sqlxmlmismatch = "INSERT INTO xml_log (No,LogDesc) VALUES ( '$invoice_no','DOES NOT EXIST IN FILES (" . $invoice['Address'] . ")')";
$resultxmlmismatch = $db->query($sqlxmlmismatch);
$objWorksheet->getCell("BH$start_row")->setValue('DOES NOT EXIST IN FILES - NOT SENT');
}

最初$ cur_xml_valid设置为'N',并在构建了一些xml字符串后将其设置为'Y'。在if条件评估$ cur_xml_valid是否为'N'之后。

问:请确认这只是错误的代码,如果发生错误,$ cur_xml_valid将永远不会设置为“Y”。假设没有try/catch块,如果发生错误,整个执行将在php中停止。

问:对于正常流程(无异常(exception)),$ cur_xml_valid将始终设置为“Y”。

最佳答案

您的假设是正确的,当$cur_xml_valid语句到达N语句时,它就不可能成为if

为了使编码人员可以从中受益,可能有一个较早的版本在顶部带有验证代码(也许它是从API获取XML的)。动态XML的获取和验证已被删除,但是他们留下了变量和检查它的代码。随着代码的发展,这种事情并不少见。

关于php - 了解php错误处理和代码执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com