昨天我参加了 PHP 开发者职位的面试。我的工作是在非常简单的测试中解决 15 个问题。问题之一是标记所有地方,在给定的示例 PHP 代码中,执行将因致命错误而停止。其中,我将以下内容标记为错误:
$this->someFunction(#);
面试的另一个人告诉我,我错了,因为这不是一个致命的错误。
有人可以启发我,为什么以及如何在 PHP 函数调用中使用哈希 (#)?我从来没有见过这样的结构,谷歌几乎没有告诉我这个(或者我做了错误的搜索)。
该#
字符用于单行注释。
这本身就是一个语法错误,因为没有)
$this->someFunction(#);
这被读作:
$this->someFunction(
但是,如果这之后有行,那就没关系了。例子:
$this->someFunction(#);
'a', 'b', 'c'
);
这#);
是一个注释,没有被解析,所以 PHP 看到
$this->someFunction(
'a', 'b', 'c'
);
这是有效的。
这将导致“解析错误”,而不是致命的。只需自己检查即可。
PHP 代码通常使用 C 风格的注释(//
和/* */
)。但是,PHP确实使用shell 样式的注释(即#
)。因此,#I think PHP is ignoring all my comments
是一个有效的评论。
在上面的代码中,你会得到一个致命的语法错误,因为 PHP 只能看到$this->someFunction(
(没有右括号或分号)。