Php 分析错误:语法错误,意外“,”预匹配

Php 分析错误:语法错误,意外“,”预匹配,php,Php,我不断得到错误: 第97行: 我该如何解决这个问题 if (preg_match('/['.unichr(0x1F300).'-'.unichr(0x1F5FF).unichr(0xE000).'-'.unichr(0xF8FF).']/u', $_POST['username'])) { 将右前角拆下 这样可能更容易发现: $pattern = '/['.unichr(0x1F300).'-'.unichr(0x1F5FF). unichr(0xE000).'-'.

我不断得到错误:

第97行:

我该如何解决这个问题

if (preg_match('/['.unichr(0x1F300).'-'.unichr(0x1F5FF).unichr(0xE000).'-'.unichr(0xF8FF).']/u', $_POST['username'])) {
将右前角拆下

这样可能更容易发现:

 $pattern = '/['.unichr(0x1F300).'-'.unichr(0x1F5FF).
            unichr(0xE000).'-'.unichr(0xF8FF).']/u';
 if (preg_match($pattern, $_POST['username'])) {

这是保持行短和使用良好IDE的一个很好的理由。

在第二个参数前加上括号。
if (preg_match('/['.unichr(0x1F300).'-'.unichr(0x1F5FF).unichr(0xE000).'-'.unichr(0xF8FF).']/u', $_POST['username'])) {
 $pattern = '/['.unichr(0x1F300).'-'.unichr(0x1F5FF).
            unichr(0xE000).'-'.unichr(0xF8FF).']/u';
 if (preg_match($pattern, $_POST['username'])) {