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数组
Oct 09 PHP
无数据库的详细域名查询程序PHP版(2)
Oct 09 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
PHP答题类应用接口实例
Feb 09 PHP
php文件读取方法实例分析
Jun 20 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
php中各种定义变量的方法小结
Oct 18 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
PHP之认识(二)关于Traits的用法详解
Apr 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
smarty中常用方法实例总结
2015/08/07 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
js字符编码函数区别分析
2008/06/05 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
js对象基础实例分析
2015/01/13 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
深入理解python多进程编程
2016/06/12 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
春季防火方案
2014/05/10 职场文书
旷课检讨书范文
2015/01/27 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
Promise静态四兄弟实现示例详解
2022/07/07 Javascript