php許可權控制修飾符
⑴ php報錯: Deprecated: preg_replace(): The /e modifier is deprecated...
這個錯誤是這樣的情況,我們來一起分析下:
從錯誤的信息來看,貌似說是用了不推薦的函數,也就是過時的函數,可是事實是這樣嗎?
為了一探究竟,我查看了PHP手冊的preg_replace()函數介紹,並沒有說這個函數過時了或不推薦了,那麼,問題出在哪了呢?
繼續往下看,結果在手冊中看到這樣的消息:
錯誤/異常
當傳入 "e" 修飾符的時候,會產生一個E_DEPRECATED級別的錯誤。
好像明白點了,是因為用了「e」修飾符,那之前使用為什麼沒有出錯呢?
繼續往下看,看到版本更新,一下恍然大悟,原來如此:
版本 說明
5.5.0 /e修飾符已經被棄用了。使用preg_replace_callback()代替。參見文檔中PREG_REPLACE_EVAL關於安全風險的更多信息
這下問題很清楚了,5.5.0以後的版本,/e的參數被廢棄了,也就是不推薦了,官方建議使用preg_replace_callback()函數代替。
廢話有點多了,好,下面進入正題。
好了,問題找到了,那就看看如何解決,官方推薦使用preg_replace_callback() ,那還客氣啥,用就是了。
可是,問題又來了,怎麼用呢?
繼續看手冊,看preg_replace_callback()的手冊,說的很明白。
其實這個函數和preg_replace()唯一的區別就是,preg_replace()將匹配到的串直接替換,而preg_replace_callback()是將匹配到的串帶入到回調函數中做處理後然後替換,就是這么任性,靈活度一下加大了,但是效率肯定不如preg_replace(),所以,如果僅僅是簡單替換,還是用preg_replace()的好,如果要對匹配到的串進行特殊處理,那就非preg_replace_callback()莫屬了,親!
好了,就到這里了,為了升級知道賬號,所以廢話有點多了。。。。。望採納啊。
⑵ python與php的異同,和各自的優缺點
相同點: 都是動態類型的解釋型高級腳本語言。
不同點既各自優缺點:
PHP名稱的含義是「超文本預處理器」。
僅則一個名稱就說明了PHP的著重點,也是長處
1、文本處理。text,意味擅長所有的文本處理
2、超文本處理,HyperText,意味尤其擅長HTML超文本標記語言的文本處理。
3、超文本預處理,HyperText Preprocessor,一個「預」字,意味擅長HTTP超文本傳輸協議之上的服務端上的所有應用的處理。
也就是說,PHP有個互聯網專門化的方向,現在專門化也是所有行業的趨勢。
Python比較通用,就是什麼都能幹一點。能做WEB相關的但沒有php那麼專門化和無微不至。
語法簡潔,由於為了通用,python的數據結構工具也比較輕量級一點,實現復雜演算法的資源開銷比PHP稍低,裸運行的速度也比php稍快。但在網路應用上,這點速度差距在網路IO面前都可以忽略不計。 python作為通用腳本,也廣泛被嵌入/捆綁入一些3D工具、繪圖工具、數學工具、游戲中作為高級流程部分的描述。
語法方面,PHP的語法屬於C系,繼承了C++和Java的很多歷史優點。
Python的語法,吸收了一些現代語言元素,比如靠縮進決定層次、lambda表達式,數列產生器,一級函數對象。
2個都值得學習掌握!