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个都值得学习掌握!