PHP7 其他语言层面的修改


Posted in PHP onMarch 09, 2021

一、在非兼容$this语境中以静态方式调用非静态方法将不再支持。

在非兼容$this语境中以静态方式调用非静态方法将不再支持。在这种场景下面,$this不会被定义,但调用还可以调用,但会有一个警告提示:

class A {
  public function test() { var_dump($this); }
}

// Note: Does NOT extend A
class B {
  public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();

// Deprecated: Non-static method A::test() should not be called statically
// Notice: Undefined variable $this
NULL

注意这种情况适用于在非兼容语境中调用。上面代码的例子中class B和class A没有关系,所以调用的时候$this是没有定义的。

但如果class B是从class A继承的话,该调用是合法的。

 

二、下面的这些保留字不能用作类名、接口名和trait名。

bool
int
float
string
null
false
true

下面这些关键字已经被留作将来使用,目前可以使用,不会报错,但不建议。

resourceobject
mixed
numeric

 

三、yield语法调整

在表达式里面使用yield语法结构的时候,不再需要括号了。它现在是一个右关联的操作符,优先级介于"print"和"=>"操作符。在某些场景下面行为和之前会不一致。

echo yield -1;
echo (yield) - 1;  // 之前的语法解释行为
echo yield (-1);   // 现在的语法解释行为

yield $foo or die;
yield ($foo or die);  // 之前的语法解释行为
(yield $foo) or die;  // 现在的语法解释行为

可以通过括号来避免歧义。

 

四、其他的一些调整. 

移除了ASP格式的支持和脚本语法的支持:<% 和 <script language=php>

不再支持对 new 的结果进行引用赋值。

移除了在非兼容$this语境中对非静态方法的作用域调用。

ini文件里面不再支持#开头的注释,使用;。

$HTTP_RAW_POST_DATA 变量被移除,使用php://input来代替。

PHP 相关文章推荐
php正则
Jul 07 PHP
php 异常处理实现代码
Mar 10 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
PHP7 错误处理机制修改
Mar 09 #PHP
PHP7 字符串处理机制修改
Mar 09 #PHP
PHP7 整型处理机制修改
Mar 09 #PHP
PHP7 参数处理机制修改
Mar 09 #PHP
PHP7 foreach() 函数修改
Mar 09 #PHP
PHP7 list() 函数修改
Mar 09 #PHP
PHP7变量处理机制修改
Mar 09 #PHP
You might like
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
js中apply与call简单用法详解
2017/11/06 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
python 获取et和excel的版本号
2009/04/09 Python
Python单链表的简单实现方法
2014/09/23 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
建筑工程质量通病防治方案
2014/06/08 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书