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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
php 中文和编码判断代码
May 16 PHP
php知道与问问的采集插件代码
Oct 12 PHP
一个基于PDO的数据库操作类
Mar 24 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP中的类型约束介绍
2015/05/11 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PDO::prepare讲解
2019/01/29 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
Python去除列表中重复元素的方法
2015/03/20 Python
Python and、or以及and-or语法总结
2015/04/14 Python
Python实现控制台进度条功能
2016/01/04 Python
浅谈Python 对象内存占用
2016/07/15 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
python相对企业语言优势在哪
2020/06/12 Python
python判断是空的实例分享
2020/07/06 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
Julep官网:美容产品和指甲油
2017/02/25 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
大二学期个人自我评价
2014/01/13 职场文书
考试违纪检讨书
2014/02/02 职场文书
2014党员自我评议表范文
2014/09/20 职场文书