我多年来一直遇到这个问题,但不像今天那么频繁。这促使我一劳永逸地问这个问题。
有时(今天对于几乎所有逻辑)我的简单 PHP 代码会因解析错误而失败。有时 PHP 是正确的,但通常不会出现错误,并且当再次编写完全相同的代码时,它可以正常工作而不会发出任何抱怨。复制粘贴代码不起作用,必须再次完整输入。
今天,我仔细地按照失败的行准确地输入了每个字符,然后删除了旧的字符,只是为了让脚本正常工作。例如:
1 foreach ($_POST['data_positions'] AS $k => $v) {
2
3 }
在第 1 行上引发了解析错误。我将代码降至第 2 行,并再次编写了完全相同的第 1 行(我多次检查每个字符是否相同),然后删除第 2 行,它就可以工作了。另一个例子:
1 if (is_numeric($k)) {
2
3 }
在第 1 行也失败。当我重新输入它时,它起作用了。再次复制并粘贴该行不起作用。
我 100% 确定代码没问题,所以这让我相信这是某种编码问题,并且代码的某些部分归因于错误的编码(例如将格式化文本粘贴到电子邮件中)。
我目前正在使用 Sublime Text(但在 Notepad++ 和旧的 Homesite 编辑器中也有相同类型的错误解析错误),在 OS X 上运行 MAMP,但它也发生在我的 Windows 桌面计算机上。
有人知道我能做什么吗?多次编写代码并随机失败是非常烦人的事情。
编辑(重新打开):
我仍然无法让它正常工作。无论我将其粘贴到记事本还是从头开始输入一个全新的文件。我已经检查了数据库、服务器和我的编辑器,它们都使用 UFT-8。几乎总是 IF 语句被破坏(有时我必须将它们输入 3 或 4 次才能起作用。一些琐碎的事情,比如if ($a === 3 || $a === 6) {}
.
编辑(已解决!):
向下滚动查看解决方案,我自己回答了这个问题。