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 相关文章推荐
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
重新认识php array_merge函数
Aug 31 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
php的debug相关函数用法示例
Jul 11 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
Mar 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
javascript读写json示例
2014/04/11 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小程序实现购物车功能
2020/11/18 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
Python中的super用法详解
2015/05/28 Python
Python中pygame安装方法图文详解
2015/11/11 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
解决Mac下使用python的坑
2019/08/13 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
销售总监岗位职责
2014/01/04 职场文书
公司成立感言
2014/01/11 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
抗震救灾标语
2014/06/26 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
中学生检讨书范文
2014/11/03 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS