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 相关文章推荐
cache_lite试用
Feb 14 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 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变量引用的面试题
2010/08/08 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Windows下安装Scrapy
2018/10/17 Python
PyQt5实现简易计算器
2020/05/30 Python
pygame实现非图片按钮效果
2019/10/29 Python
python openpyxl模块的使用详解
2021/02/25 Python
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
extern在函数声明中是什么意思
2014/01/19 面试题
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
2014年教研组工作总结
2014/11/26 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL