语法错误,意外的“@”,期待“)”

syntax error, unexpected '@', expecting ')'

我正在制作一个内容管理系统,当打开以下代码时,我不断收到相同的错误(使用 XAMPP):

解析错误:第 47 行 C:\xampp\htdocs\cms\classes\Article.php 中的语法错误,意外的“@”,应为“)”

我已经试过用')'替换'@',但还是不行。如果我这样做,错误将变为:

解析错误:语法错误,第 47 行 C:\xampp\htdocs\cms\classes\Article.php 中的意外“:”

public function __construct( $data=array() ) {
    if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
    if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
    if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^.,-_'"@?!:$ a-zA-Z0-9()]/", "", $data['title'] );
    if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^.,-_'"@?!:$ a-zA-Z0-9()]/", "", $data['summary'] );
    if ( isset( $data['content'] ) ) $this->content = $data['content'];
  }

我希望 运行 没有任何问题。

您应该像这样转义双引号:\",只需在前面添加斜杠。

第7行和第8行的问题。 此代码对我有用。

    public function __construct( $data=array() ) {
    if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
    if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
    if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^.,-_'\"@?!:$ a-zA-Z0-9()]/", "", $data['title'] );
    if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^.,-_'\"@?!:$ a-zA-Z0-9()]/", "", $data['summary'] );
    if ( isset( $data['content'] ) ) $this->content = $data['content'];
  }