厦门服务器租用>业界新闻>PHP 7.4beta1有新的弃用

PHP 7.4beta1有新的弃用

发布时间:2020/4/21 13:59:40    来源: 纵横数据

以前,PHP允许方形括号和花括号可互换使用,以访问数组元素和字符串偏移。来自PHP内部的PHP RFC的示例,用于说明:

1

2

3

4

5

6

7

$array = [1, 2];

echo $array[1]; // prints 2

echo $array{1}; // also prints 2

 

$string = "foo";

echo $string[0]; // prints "f"

echo $string{0}; // also prints "f"

这部分导致了混乱和问题。例如,花括号不能用于将元素写入数组:

1

2

3

4

$array[] = 3;

echo $array[2]; // prints 3

  

$array{} = 3; // Parse error: syntax error, unexpected '}'

使用花括号语法也无法创建数组:

1

2

3

$array = [1, 2]; // works

  

$array = {1, 2}; // Parse error: syntax error, unexpected '{'

事实证明,它很难用于列表映射:

1

2

3

[$one, $two] = $array; // works

  

{$one, $two} = $array; // Parse error: syntax error, unexpected ','

因此,当使用已发布的beta版的数组或字符串偏移量时,花括号语法现在标记为已弃用,因此不建议使用。

PHP 7.4beta 1带来了PHP开发团队上周投票的进一步弃用。其中列出的14种方法在PHP 7.4中已弃用:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

真正的类型

魔术引用遗产

array_key_exists()包含对象

FILTER_SANITIZE_MAGIC_QUOTES过滤器

反射export()方法

mb_strrpos(),编码为第三个参数

implode()参数顺序组合

从非静态闭包中取消绑定$ this

hebrevc()函数

convert_cyr_string()函数

money_format()函数

ezmlm_hash()函数

restore_include_path()函数

allow_url_include ini指令

在PHP 7.4beta1中,不再推荐使用所有提到的方法,最后在8.0版中删除。

PHP 7.4beta1中的BugFix

除了上面提到的弃用之外,beta版还准备了一些bug修复。根据发行说明,内置网络服务器中存在Segmatation Fault。这个问题应该通过这个beta来解决。

PHP通过CGI执行时出现了另一个问题。PHP正在寻找一个shebang(#!)。如果第一行中有哈希值,PHP不检查以下是否是感叹号,因此是哈希值和感叹号的组合(#!)。根据错误报告, PHP跳过相应的行并忽略了PHP代码。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Test script:

---------------

#<!--?php echo "Hello World\n"; ?-->

Second line.

  

Expected result:

----------------

X-Powered-By: PHP/5.3.3-7+squeeze3

Content-type: text/html

  

#Hello World

Second line.

  

Actual result:

--------------

X-Powered-By: PHP/5.3.3-7+squeeze3

Content-type: text/html

  

Second line.

此外,还有一个错误,PHP吞噬了程序的第一个字节,如果它来自进程替换(Bug#78066)。第一个测试版修复了这个错误。有关当前版本的更多信息,请参阅发行说明。

Beta1之后是beta2

PHP 7.4计划于11月28日发布。在第一个测试版发布后,PHP 7.4beta2将于2019年8月8日发布。PHP 7.4的时间表可以在PHP wiki中找到。

在线客服
微信公众号
免费拨打400-1886560
免费拨打0592-5580190 免费拨打 400-1886560 或 0592-5580190
返回顶部
返回头部 返回顶部