这是php文件中一行的两个版本:

第一版:

if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {

第二版:
if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {

尽管它们看起来完全相同,但第一个版本的结果为PHP Parse error: syntax error, unexpected T_STRING,而第二个版本的效果很好。两者之间的区别在于,第一个版本是粘贴并修改的,而第二个版本则是完全手工编写的。这里发生了什么?

注释:该行是从以UTF-8编码的文本文件中复制并粘贴到另一个UTF-8文本文件中的。我在gedit中编写的所有文件都在gedit中完成了所有操作。

最佳答案

当我将第一行复制并粘贴到文本编辑器中并打开“显示不可见字符”选项时,它看起来像这样:

if ($projet['sourceDonnees']•=== (string)$CONSTANTS['sourceDonnees_saisie']) {

注意]之间的===

您的第二行代码显示非常干净。

很多时候,当您从网站复制和粘贴文本时,您会看到不可见的杂散字符。但是,我不知道哪种键盘组合会从头开始复制此内容。

进一步的实验表明此不可见字符为“非ASCII” ... BBEdit 文本编辑器仅将其称为“gremlins”,甚至具有“zap gremlins”功能。

关于php - 如果手动写出相同的行行得通,为什么粘贴行会破坏代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15573284/

10-17 00:35