我得到了这个示例 PHP 代码:
if ( $new_value && ’ == $old_value )
Run Code Online (Sandbox Code Playgroud)
&&我在这里找不到:参考 — 这个符号在 PHP 中是什么意思?并且由于 Google 忽略了它,并且大多数其他搜索都将’其视为'(撇号),因此我将空空如也。
这个字符在 PHP 中没有特殊含义,可能只是您正在阅读的代码中的一个错误。例如,它可能本打算用作''(一个空字符串),但被某些 Markdown 样式的格式系统搞砸了。
在 PHP 8.0 之前,由于两个稍微奇怪的特性的组合,它实际上不会产生错误:
结果’ == $old_value实际上被解释为'’' == $old_value,即“是否$old_value匹配包含字符的字符串’?”
在 PHP 8.0 中,不再允许这种解释,并且您将在运行时收到未定义常量的错误。但是,您实际上可以定义这个常量,并且代码将在从 4.3 到 8.0(包括 8.0)的所有 PHP 版本上运行,完全没有任何错误或警告:
<?php
// Define our oddly-named constant to have a value of 'hello'
define('’', 'hello');
// Compare it against a normal string variable
$foo = 'hello';
if ( ’ == $foo ) {
echo 'It works!';
}
Run Code Online (Sandbox Code Playgroud)
需要说明的是,这并不是特别有用,除非您试图对某人进行恶作剧,否则它只是解释了一个令人惊讶的事实,即这不是语法错误。