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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php中iconv函数使用方法
May 24 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
php实现简单文件下载的方法
Jan 30 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
PHP实现时间日期友好显示实现代码
Sep 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
YII Framework框架教程之安全方案详解
2016/03/14 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jquery之empty()与remove()区别说明
2010/09/10 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Python 中@property的用法详解
2020/01/15 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python字典的值可以修改吗
2020/06/29 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
python 简单的调用有道翻译
2020/11/25 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
大学生家政服务项目创业计划书
2014/01/30 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
听证会主持词
2015/07/03 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
mysql幻读详解实例以及解决办法
2022/06/16 MySQL