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中$_SERVER的详细参数与说明
Jul 29 PHP
php目录管理函数小结
Sep 10 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
php文件上传你必须知道的几点
Oct 20 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
php的命名空间与自动加载实现方法
Aug 25 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的计数器程序
2006/10/09 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python转换摩斯密码示例
2014/02/16 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
python实现自主查询实时天气
2018/06/22 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
python 杀死自身进程的实现方法
2019/07/01 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
python字典的值可以修改吗
2020/06/29 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
《少年王冕》教学反思
2014/04/11 职场文书
公司承诺书格式
2014/05/21 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
普宁寺导游词
2015/02/04 职场文书
与死神共舞观后感
2015/06/15 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
Nginx 常用配置
2022/05/15 Servers