在评论中有些困惑之后
我以为我提出了一个问题.根据PHP手册,应该匹配有效的类名[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.但显然,这不是强制执行,也不适用于其他任何事情:
define('?', pi());
var_dump(?);
class ? {
private $? = TRUE;
public function ?()
{
return $this->?;
}
}
$? = new ?;
var_dump($? );
var_dump($?->?());
Run Code Online (Sandbox Code Playgroud)
工作正常(即使我的IDE无法显示␀).一些博学的人可以为我清楚这一点吗?我们可以使用任何Unicode吗?如果是这样,从什么时候开始?并不是说我真的想要使用任何东西,A-Za-z_但我很好奇.
澄清:我不是在使用Regex来验证类名,也不知道PHP内部是否使用了手册中建议的Regex.困扰我的事情(显然是链接问题中的其他人)是为什么像$? = 1PHP 这样的东西可以使用.PHP6被认为是Unicode版本,但PHP6处于中断状态.但是如果没有Unicode支持,为什么我可以这样做呢?