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 cookis创建实现代码
Mar 16 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
PHP简洁函数小结
Aug 12 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
解析mysql 表中的碎片产生原因以及清理
Jun 22 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
PHP中4个加速、缓存扩展的区别和选用建议
Mar 12 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 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读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python yield 使用浅析
2015/05/28 Python
Python获取央视节目单的实现代码
2015/07/25 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python pygame实现2048游戏
2018/11/20 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
python 读取二进制 显示图片案例
2020/04/24 Python
pyspark 随机森林的实现
2020/04/24 Python
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
初中体育教学反思
2014/01/14 职场文书
工业设计专业自荐书
2014/06/05 职场文书
2014年作风建设工作总结
2014/10/29 职场文书