關於preg_replace_callback中的匿名函數使用中遇到的問題

來源:互聯網
上載者:User
關鍵字 php
最近升級php5.3到php5.6.19後,出現了一些棄用函數,比如:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead。於是就著手修改,將其替換為preg_replace_callback。
事先當然瞭解一下其用法,但這個不是重點。當下出現的問題是:我改好後(貼出改完的代碼),

/* replace special blocks by "{php}" */        $source_content = preg_replace_callback($search, function ($r) {            $str = $this->_quote_replace($this->left_delimiter);            $str .= 'php';            $str .= str_repeat("\n", substr_count($r[0], "\n"));            $str .= $this->_quote_replace($this->right_delimiter);            return $str;        }, $source_content);

結果報Fatal error: Using $this when not in object context這個錯誤。
這裡是執行個體化一個對象的結果。裡面的函數也都不是靜態。
如何解決這個問題?

問題已解決,這個涉及到php的版本,在php5.4以上就沒問題了。

回複內容:

最近升級php5.3到php5.6.19後,出現了一些棄用函數,比如:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead。於是就著手修改,將其替換為preg_replace_callback。
事先當然瞭解一下其用法,但這個不是重點。當下出現的問題是:我改好後(貼出改完的代碼),

/* replace special blocks by "{php}" */        $source_content = preg_replace_callback($search, function ($r) {            $str = $this->_quote_replace($this->left_delimiter);            $str .= 'php';            $str .= str_repeat("\n", substr_count($r[0], "\n"));            $str .= $this->_quote_replace($this->right_delimiter);            return $str;        }, $source_content);

結果報Fatal error: Using $this when not in object context這個錯誤。
這裡是執行個體化一個對象的結果。裡面的函數也都不是靜態。
如何解決這個問題?

問題已解決,這個涉及到php的版本,在php5.4以上就沒問題了。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.