为什么是$ M-;语法上有效,它有什么作用?

时间:2012-10-25 09:10:09

标签: php

我不认为自己是PHP专家,但我设计了几个页面,现在每个页面包含几千行代码。对于我当前用于游戏网站的项目,我回顾了包含行

的现有函数
$M–;

现在我对PHP的基本理解告诉我这不起作用,因为它应该是 - 简而言之-1。但它不是破折号,脚本运行时没有错误(error_reporting (E_ALL)),但在之前和之后回显$M给我相同的值。

那么它做了什么以及为什么我没有收到错误?

3 个答案:

答案 0 :(得分:6)

这是一个短划线,PHP只是一个没有特定含义的随机字节。 $M–或UTF-8编码4DE28093是有效的变量名称。就像$漢字

一样

单个变量本身只是将该变量初始化为null(如果它尚不存在),该行不执行任何操作 else。 < / p>

答案 1 :(得分:2)

的代码将导致通知。首先,因为这不是减号 vs -&lt; - 不同(除非您定义了变量名称M–)。

  

Notice: Undefined variable: M– in

第二,即使它是一个减号,它也会吐出一个通知。

  

Parse error: syntax error, unexpected ';' in

如果它只是显示你没有正确启用完整的错误报告,或者你在变量名中使用unicode字符只是为了与其他人阅读你的代码(包括你自己)。 ;)

<强>更新

我误读了你的代码。发生的情况是,您在执行该行时初始化变量M–,因此M–将为null

答案 2 :(得分:-1)

看起来它可能会将其解释为$M - null; $ M基本上减零。哪个什么都不做?