我有一个关联数组,出于所有意图和目的,似乎完全没有理由发出警告。完整的源代码如下:
<?php
$entries = array(
array('date' => '2012-08-12', 'change' => '-19'),
array('date' => '2012-08-13', 'change' => '-21'),
array('date' => '2012-08-14', 'change' => '-19'),
array('date' => '2012-08-15', 'change' => '-17'),
);
foreach ($entries as $entry) {
print $entry['date'] . ': ' . $entry['change'] . '<br/>';
}
对我来说一切看起来都很好,但是当我在浏览器中查看输出时,我收到以下错误消息:
解析错误:语法错误,意外的 T_ARRAY,在第5行的/Applications/MAMP/htdocs/wtf2.php中期待 ')'
我仔细看了看,然后发现在第 4 行,似乎有一两个尾随空格(起初我什至没有考虑过)。但是,当我复制空格时,将其粘贴到一个新文档中,如下所示(第 2 行):
<?php
$whitespace = ' ';
print rawurlencode($whitespace);
...然后在我的浏览器中查看输出,这就是我所看到的:
%C2%A0%20
我会问,“那一开始是怎么做到的?” 但我真的不认为这是一个可以回答的问题。所以我的实际问题是:这样的空格与任何其他空格有何不同(尤其是在通过 PHP 解释器运行时会导致致命错误的地步)?有没有办法防止这种情况在未来发生?
PS:我正在运行 PHP 版本 5.3.20(通过 Mac 上的 MAMP Pro)。
PPS:澄清一下,当空白本身被删除时,代码运行良好。