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 SQLite类
May 07 PHP
php的字符串用法小结
Jun 08 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
layui数据表格自定义每页条数limit设置
Oct 26 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
10 个经典PHP函数
2013/10/17 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
大学生暑期实践感言
2014/02/26 职场文书
大学学生个人总结
2015/02/15 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python