PHP8.2最新进展,即将进行新特性冻结!

PHP8.2计划于11 月 24 日 发布,PHP的版本发行管理员们已经发布了PHP8.2的Alpha 1和Alpha 2的版本。7 月 19 日 是 PHP 8.2 特性冻结日期,在此之后PHP8.2不在接收新的特性建议。PHP的新特性都有2周的讨论期和2周的投票期。在特性冻结之前必须对所有的RFC(提案)进行投票。

PHP基金会每月都会在博客上发表当月的PHP核心的最新进展。本文介绍的是6月的进展情况。

PHP8.2 的 QA 版本 和 特性冻结

PHP8.2计划于11 月 24 日 发布,PHP的版本发行管理员们已经发布了PHP8.2的Alpha 1和Alpha 2的版本。

这些Alpha 版本不适合用于生产环境,而是用作测试环境和本地开发的版本节点。

已经编译的windows版本可以在 https://windows.php.net/qa/ 上找到,Docker 镜像 可以在Docker Hub 上找到,源代码在Github 上的 php/php-src中,可以自行编译,在 Homebrew 上,PHP 8.2-dev 软件包可从 shivammathur/php 查看相关指令。

7 月 19 日 是 PHP 8.2 特性冻结日期,在此之后PHP8.2不在接收新的特性建议。PHP的新特性都有2周的讨论期和2周的投票期。在特性冻结之前必须对所有的RFC(提案)进行投票。

RFC的更新

上次在 PHP8.2将有哪些改动(性能改进、新特性)!中介绍了一部分已经通过的新特性,如今又有一些新特性被投票通过,还有一些正在进行中。

已实现:允许false和null作为独立类型

在之前的文章中已经介绍过,有些开发者并不看好这件事,认为false作为独立类型并没有什么用。在这之前false只能和其他类型一起联合声明。

你可以在PHP的播客中了解到对开发者George Peter Banyard的访谈。https://phpinternals.news/99 ,他提到大量的传统函数会在内部返回false和抛出异常。并不会返回有实际意义的东西,返回false也许是为了中断当前函数代码的执行。所以使用false作为独立的返回值也是有意义的。

已实现:允许true作为独立类型

早在之前的文章中,小编就提到过,false可以作为独立的类型(并且进行声明),但是true却不可以。此提案建议添加true作为独立类型,使PHP的类型系统根据表现力。

已通过:随机扩展5.x

是 Go Kudo 提出的 RFC 的第五次迭代,改进PHP的随机数生成器,并且将一些列的改动移动到单独的扩展中。

已通过:为is_callable添加弃用通知,并添加callable类型

PHP以后将弃用is_callable函数的部分表现,但在PHP8.2中只会产生弃用通知。这样做的原因,简单来讲,is_callable使用起来语法混乱。但注意,is_callable只是放弃了判断字符串的用法,比如is_callable(‘myFunction’),对于其他类型仍然是可用的,比如一个变量代表的是一个回调函数。

已通过:析取范式类型

该提案提议PHP支持更多的类型声明组合,比如:

(A&B&D)|int|null

就是说该值有可能是null,有可能是整型,也有可能是实现了A接口、B接口、D接口的对象。

对此可以查看提案详情:https://wiki.php.net/rfc/dnf_types

更多的RFC

还有更多讨论中的提案,下面做一个简单的介绍和链接。

讨论中:新的CURL RUL API(增加curl类和url类)

讨论中:const声明时使用枚举属性值

讨论中:PDO程序中特性的子类(能够提高对sqlite、pgsql的支持)

讨论中:使 iterator_*() 系列接受所有可迭代对象(目前只接受Traversables,但不接受array)

讨论中:在枚举中实现自动Stringable(但仍然不能自定义覆盖)

讨论中:短闭包(匿名函数想要使用外部变量必须使用use声明,短闭包可以解决这样的问题(,跟js的箭头函数效果一样))

提到的文章链接:

  • PHP8.2的windows版本( https://windows.php.net/qa/ )

  • PHP8.2的docker 镜像( https://hub.docker.com/_/php?tab=tags&page=1&name=8.2.0 )

  • PHP8.2的源码托管地址( https://github.com/php/php-src )

  • PHP8.2的Mac工具Homebrew 安装( https://github.com/shivammathur/homebrew-php )

  • PHP8.2将有哪些新东西?( https://phpreturn.com/index/a626a74a300dc5.html )

  • 提案:将false和null作为独立类型( https://wiki.php.net/rfc/null-false-standalone-types )

  • 对于(将false和null作为独立类型)提案的开发者访谈( https://phpinternals.news/99 )

  • 提案:将true作为独立类型( https://wiki.php.net/rfc/true-type )

  • 提案:对is_callable的弃用通知( https://wiki.php.net/rfc/partially-supported-callables-expand-deprecation-notices )

  • 提案:析取范式类型( https://wiki.php.net/rfc/dnf_types )

  • 提案:新的CURL URL API ( https://wiki.php.net/rfc/curl-url-api )

  • 提案:const声明使用枚举属性值( https://wiki.php.net/rfc/fetch_property_in_const_expressions )

  • 提案:PDO的特定子类( https://wiki.php.net/rfc/pdo_driver_specific_subclasses )

  • 提案:扩大iterator的可迭代多项( https://wiki.php.net/rfc/iterator_xyz_accept_array )

  • 提案:在没居中实现自动Stringable( https://wiki.php.net/rfc/auto-implement_stringable_for_string_backed_enums )

  • 提案:短闭包( https://wiki.php.net/rfc/auto-capture-closure )

关于PHP更多合并说明可以查看:https://thephp.foundation/blog/2022/06/30/php-core-roundup-3/#merged-prs-and-commits

英文原文地址:https://thephp.foundation/blog/2022/06/30/php-core-roundup-3/

转载地址:https://phpreturn.com/index/a62be479ae1e02.html

原文平台:PHP武器库

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

实现步骤:1、自定义一个过滤函数,用于处理数组,返回值不等于3的数组元素,语法为“function 函数名($num){return($num!=3);}”;2、使用array_filter()函数调用自定义的过滤函数处理指定数组即可,“array_filter($arr,"函数名")”。

PHP8.2最新进展,即将进行新特性冻结!

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以使用array_filter()函数过滤数组,除去值等于3的元素,即保留值不等于3的元素。

array_filter() 函数用回调函数过滤数组中的元素。

该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。

实现方法:只需在array_filter() 函数调用的回调函数中,设置条件,返回值不等于3的数组元素即可。

<?php
function f($num){
return($num!=3);
}
$arr=array(1,2,3,4,5,6,5,4,3,2,1);
var_dump($arr);
$res=array_filter($arr,"f");
var_dump($res);
?>

PHP8.2最新进展,即将进行新特性冻结!

说明:

array_filter — 使用回调函数过滤数组的元素

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

参数:

 ◇array:要遍历的数组

 ◇callback:使用的回调函数

如果没有提供 callback 回调函数,将删除数组中 array 的所有“空”元素。 有关 PHP 如何判定“空”元素,请参阅 empty() 。

 ◇mode决定哪些参数发送到 callback 回调的标志:

  • ARRAY_FILTER_USE_KEY – 将键名作为 callback 回调的唯一参数,而不是值

  • ARRAY_FILTER_USE_BOTH – 将值和键都作为参数传递给 callback 回调,而不是仅传递值

  • 默认值为 0 ,只传递值作为 callback 回调的唯一参数。

返回值:返回过滤后的数组。

array_filter遍历 array 数组中的每个值,并将每个值传递给 callback 回调函数。 如果 callback 回调函数返回 true,则将 array 数组中的当前值返回到结果 array 数组中。

返回结果 array 数组的键名(下标)会维持不变,如果 array 参数是索引数组,返回的结果 array 数组键名(下标)可能会不连续。 可以使用 array_values() 函数对数组重新索引。

当使用array_filter()函数来声明回调函数时,它会删除false值(空值),但是,如果未指定回调函数,则将删除数组中值等于FALSE的所有元素,例如空字符串或NULL值。

以上就是php数组怎么除去值等于3的元素的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/22976/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年 9月 18日 2:44:57
下一篇 2022年 9月 18日 2:45:11

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!