Php 解析器在常用数组字段实例的特定实例上抛出错误

Php 解析器在常用数组字段实例的特定实例上抛出错误,php,Php,我有一个脚本,其中有几行代码与此类似: if ($SetUpArray[$TableName.'_'.$Index.'_InView']) { /// xxx code } 但是当脚本运行时,解析器抛出: PHP分析错误:语法错误,第192行的/home/segucom/public_html/CRUD/ShowColumn.PHP中出现意外“.”,应为“]” 有趣的是,今天才开始发生。在此之前,代码有几个构造的数组描述符,与之非常相似:(v.gr.“\u Editable”

我有一个脚本,其中有几行代码与此类似:

if ($SetUpArray[$TableName.'_'.$Index.'_InView']) 
    { /// xxx code
    }
但是当脚本运行时,解析器抛出:

PHP分析错误:语法错误,第192行的/home/segucom/public_html/CRUD/ShowColumn.PHP中出现意外“.”,应为“]”

有趣的是,今天才开始发生。在此之前,代码有几个构造的数组描述符,与之非常相似:(v.gr.“\u Editable”vs“\u Inview”),并且不会对它们抛出错误

更有趣的是,我可以在一个实时站点上复制它,但是如果在www.phpfiddle.org上测试,itsef行不会抛出错误

下面是我在phpfiddle中使用的测试代码:

<?php

$SetUpArray = array();
$TableName = "contabilidad";
$Index = 1;

// Make an assignment
$SetUpArray[$TableName.'_'.$Index.'_FieldName'] = 7;

// Another assignment
$FieldName = trim($SetUpArray[$TableName.'_'.$Index.'_FieldName']);   

// Test for value
if ($SetUpArray[$TableName.'_'.$Index.'_FieldName'] == 7)
    {
    echo "I accepted the assignment";
    } else {echo "I did not understood the assignment";}

?>

代码运行时没有错误,我得到了预期的输出:

我接受了这个任务


有什么问题吗?

它最终导致了解析器错误,而这与问题无关

问题是,在某个时刻,我在一个新的
if
语句中包含了一个以前编写的herdoc块,我对包括herdoc块在内的所有代码进行了缩进。在许多其他更改之后尝试运行代码,解析器没有找到herdeoc块的结尾,因为它没有放在行的开头,并且一直在阅读,直到它发现它无法理解的东西,在我的例子中,特定的:

$SetUpArray[$TableName.'_'.$Index.'_InView']
声明

从中学到的经验教训中,要注意使用herdoc块美化或缩进代码,不要检查结束的herdoc语句(v.gr“EOD;”)是否正好位于行的开头。 解析器很可能会给出一个难以跟踪的奇怪错误。(这不是它的错。)