首页 > 后端开发 > 正文

一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量

2025-01-01 13:31:36 | 我爱编程网

我爱编程网小编给大家带来了一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量相关文章,一起来看一下吧。

本文目录一览:

一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量

一文看懂 PHP 7.3 更新

PHP 目前依然作为竞争激烈的脚本语言之一,这主要归功于其核心维护团队的快速更新。


自从 PHP 7.0 的发布,社区见证了新特性的诞生,极大地改进了开发者在项目中使用 PHP 的方式。这些改进的主要目的包括提高 PHP 应用的性能和安全性。


PHP 最近实现了又一个里程碑,发布了 PHP 7.3 版本,新版本带来了许多急需的更新。


本文将探讨新发布的 PHP 7.3 特性和更新。好消息是,你可以在测试服务器上自行安装新版本并查看新功能。但要记住,切勿在生产服务器上使用 RC 版本更新,这可能会破坏已经上线的应用。


以下是 PHP 7.3 中引入的一些更新,与之前的版本相比,它们大大提高了 PHP 7.3 的性能。


接下来,我们将逐一讨论这些更新。



  1. 灵活的 Heredoc 和 Nowdoc 语法


    Heredoc 和 Nowdoc 语法在使用多行长字符串时非常有用。它们要求结束标识符应该出现在新行的第一个字符串。


    此更新提出了以下两项改进:



    • 在上述示例中,很容易看出这些改动。



  2. 函数调用中允许尾部逗号


    在参数、元素、变量列表结尾,追加尾部逗号。有时我们在数组内以及函数调用(特别是可变参函数)时需要传递大量元素,若遗漏一个逗号,便会报错。基于此情况,尾部逗号便显得十分有用。这个特性已经在数组内使用,并且从 PHP 7.2 开始,分组命名空间(Grouped Namespaces)语法也开始支持尾部逗号。


    当新值需要被追加于此处时,尾部逗号便显得十分实用。在可变参函数例如 unset() 内,更是如此。


    当你使用 compact() 函数给模板引擎传递一批变量时,也是能用到的例子。


    在某些需要构造连续或分组数据情况下,经常要使用 array_merge() 函数合并数组。也可以利用尾部逗号:



  3. JSON_THROW_ON_ERROR


    解析 JSON 响应数据,有 json_encode() 以及 json_decode() 两个函数可供使用。不幸的是,它们都没有恰当的错误抛出表现。json_encode 失败时仅会返回 false;json_decode 失败时则会返回 null,而 null 可作为合法的 JSON 数值。唯一获取错误的方法是,调用 json_last_error() 或 json_last_error_msg(),它们将分别返回机器可读和人类可读的全局错误状态。


    该 RFC 提出的解决方案是,为 JSON 函数新增 JSON_THROW_ON_ERROR 常量用于忽略全局错误状态。当错误发生时,JSON 函数将会抛出 JsonException 异常,异常消息(message)为 json_last_error() 的返回值,异常代码(code)为 json_last_error_msg() 的返回值。



  4. 升级 PCRE2


    PHP 使用 PCRE 作为正则表达式引擎。但从 PHP 7.3 开始,PCRE2 将作为新的正则引擎大显身手。因此,你需要将现有的正则表达式迁移到符合 PCRE2 的规则。这些规则比以前更具侵入性。以下是实例:


    这个表达式在新版 PHP 内将会匹配失败且不会触发警告。因为 PCRE2 现严格要求,若需匹配连字符(-)而非用于表示范围,则必须移动到末尾或将其转义。


    更新到 PCRE2 10.x 后,支持了以下以及更多特性:



    • “后向引用”—— Back References,又称“反向引用”、“回溯引用”等。



  5. list() 赋值引用


    PHP 中的 list() 现在可以赋值给引用,在当前版本中 list() 中赋值不能使用引用,在 PHP 7.3 中将允许使用引用,新改进的语法如下:



  6. is_countable 函数


    在 PHP 7.2 中,使用 count() 获取对象和数组的数量。如果对象不可数,PHP 会抛出警告⚠️。所以需要检查对象或者数组是否可数。PHP 7.3 提供新的函数 is_countable() 来解决这个问题。


    该 RFC 提供新的函数 is_countable(),对数组类型或者实现了 Countable 接口的实例的变量返回 true。



  7. array_key_first(), array_key_last()


    当前版本的 PHP 允许使用 reset() ,end() 和 key() 等方法,通过改变数组的内部指针来获取数组首尾的键和值。现在,为了避免这种内部干扰,PHP 7.3 推出了新的函数来解决这个问题:


    让我们看一个例子:



  8. Argon2 和 Hash 密码加密性能增强


    在 PHP 的早期版本中,我们增加了 Argon2 和哈希密码加密算法,这是一种使用哈希加密算法来保护密码的现代算法。它有三种不同的类型,Argon2i、Argon2d 和 Argon 2id。我们针对 Argon2i 密码散列和基于密码的密钥生成进行了优化。Argon2d 性能更快,并使用依赖于内存的数据访问。Argon2i 使用与内存无关的数据访问。Argon2id 是 Argon2i 和 Argon2d 的混合体,使用依赖于数据和与数据独立的存储器访问的组合。



  9. 废弃并移除 image2wbmp()


    该函数能够将图像输出为 WBMP 格式。另一个名为 imagewbmp() 的函数也同样具备单色转换的作用。因此,出于重复原因, image2wbmp() 现已被废弃,你可使用 imagewbmp() 代替它。此函数被弃用后,再次调用它将会触发已弃用警告。待后续此函数被移除后,再次调用它将会触发致命错误。



  10. 废弃并移除大小写不敏感的常量


    使用先前版本的 PHP,你可以同时使用大小写敏感和大小写不敏感的常量。但大小写不敏感的常量在使用中会造成一点麻烦。所以,为了解决这个问题,PHP 7.3 废弃了大小写不敏感的常量。 我爱编程网



  11. 同站点 Cookie


    PHP 7.3 在建议在使用 cookies 时,增加同站点标志。这个 RFC 影响了四个系统函数。


    这个影响会在两种情况下起作用。其中一种方式会添加函数的新参数,另一种方式允许以数组形式的选项代替其他单独选项。



  12. FPM 更新


    FastCGI 进程管理器也进行了更新,现在提供了新的方式来记录 FPM 日志。


    log_limit: 设置允许的日志长度,可以超过 1024 字符。


    log_buffering: 允许不需要额外缓冲去操作日志。


    decorate _workers_output: 当启用了 catch_workers_output 时,系统会去禁用渲染输出。



  13. 改进 Windows 下的文件删除


    如官方文档所述:


    默认情况下,文件描述符以共享读、写、删除的方式去操作。这很有效的去映射 POSIX 并允许去删除正在使用中的文件。但这并不是100%都是一样的,不同的平台可能仍存在一些差异。删除操作之后,文件目录仍存在直到所有的文件操作被关闭。




总结,PHP 7.3 引入了多个功能改进,提高了性能,增加了新特性和更新,同时也废弃了一些旧功能。这些更新都可以在 php.net 网站上找到,并已经合并到主分支上了。你现在就可以在自己的服务器上使用这些新功能,也可以查阅官方 RFC 页面获取每个详细版本。如果你对新版 PHP 7.3 有任何问题,可以在评论下写下自己的想法。如果你喜欢这篇文章,并觉得它很有帮助,可以在 Twitter 上关注我,以获取更多信息。

一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量

php知识框架总结

php知识框架总结

篇一:php基础知识点总结

PHP语言基础简单整理

1.开始结束标记的格式只有在没有判断语句时才能使用。

对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);

15.PHP连接数据库:

步骤: 一、建立连接------mssql_connect(server,uid,pwd);

二、指定database-------mssql_select_db(databasename);

三、执行sql------mssql_query($sql,$link);

四、处理记录集-------资源类型数据,格式:bof---数据---eof

五、以特定格式读取数据-----mssql_fetch_array()....

六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();

16.数组:php的数组由键值和value值组成

定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值

相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值

(2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值

(3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值

(4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值

(5)key(数组名);----返回当前指针指向的元素key值

(6)current(数组名);----返回当前指针指向的元素value值

(7)next(数组名);----挪动当前数组指针到下一步

(8)reset(数组名);----恢复数组指针,指向第0个元素

(9)end(数组名);----将指针挪向最后一个元素

(10)prev(数组名);----将指针向前挪动一位

(11)foreach(数组名 as $key=>$value)

{

$key是键值,$value是value值,实现数组遍历

}

(12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中

(13)array_shift(数组名);----返回数组中第一个元素值

(14)array_pop(数组名);----返回数组最后一个元素值

(15)array_push(数组名,value);----向数组中追加元素

(16)array_unshift(数组名,value);----在数组最前面添加元素

(17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组

(18)count();----返回个数

(19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组

(20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true

(21)rsort(数组名);----从大到小,逆序排列数组value值

(22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组

(23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组

(24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。

(25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除

(26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组

(27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串

(28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组

(29)shuffle(数组名);----用于将数组进行随机排序

(30)array_sum(数组名);----对数值型数组元素值进行求和

(31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度

17.Cookie和会话控制:

Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。

存在server端的是session,存在client端的是cookie,它们用来存储全局变量。 设定Cookie值:setcookie("名","值");

通过Cookie数组取值:$_cookie["名"];

设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。

删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。 Cookie数组:setcookie("名[key]","值"); 使用foreach读取。

在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。

会话ID的传送

会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。

Cookie传送方式:

这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。

URL传送方式:

在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:

编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量

我爱编程网(https://www.52biancheng.com)小编还为大家带来编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量的相关内容。

#include "stdio.h"
#include <stdlib.h>
#include "time.h"
#define N 10
void maxmin(int *p, int *pmax, int *pmin){
int i;
for(*pmax=*pmin=p[i=0];i<N;i++){
if(p[i]>*pmax)
*pmax=p[i];
if(p[i]<*pmin)
*pmin=p[i];
}
}
int main(int argc,char *argv[]){
int array[N],i,max,min;
srand((unsigned)time(NULL));
for(i=0;i<N;printf("%d ",array[i++]=rand()%100));
printf("\n");
maxmin(array,&max,&min);
printf("MAX = %d\nMIN = %d\n",max,min);
return 0;
}

运行样例:

以上就是我爱编程网小编给大家带来的一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量,希望能对大家有所帮助。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“一文看懂 PHP 7.3 更新 编写函数,用指针法求某指针指向的数组中10个元素的最大值和最小值,并存入另外两个指针变量指向的变量”相关推荐
如何实现php指针数据库向下走。
如何实现php指针数据库向下走。

PHP文件指针按行定位你知道文件不是以“行”为单位进行存储的,所以fssek不能定位行。需要定位行,可以用fgets()函数:&lt;?php$fp=fopen("example.txt","r");$line_num=0;while($line=fgets($fp)){$line_num++;if($line_num==100){//现在到100行了ec

2024-12-29 05:32:36
PHP用到的C语言中的“指针”多吗?
PHP用到的C语言中的“指针”多吗?

PHP用到的C语言中的“指针”多吗?php没有指针的概念.=============如果学习PHP的话还有没有必要学习“指针”“结构体共同体”“编译预处理”等知识点?================单从php来说,的确是用不上.但是既然都学习了前面几章,何不顺带看一下呢.即使PHP中没有指针概念,但你要理解了指针概念,对PHP的引用概念搏侍就很容易理解了.编译预算处理

2024-07-23 15:07:52
用PHP定义一个函数,返回3个参数中的最大值? 编写一个函数,求出指定数据范围内的素数。如定义函数sushu($min,$max),输出该?
用PHP定义一个函数,返回3个参数中的最大值? 编写一个函数,求出指定数据范围内的素数。如定义函数sushu($min,$max),输出该?

用PHP定义一个函数,返回3个参数中的最大值?可以使用以下代码定义一个函数,返回3个参数中的最大值:functionfindMax($num1,$num2,$num3){$max=$num1;if($num2&gt;$max){$max=$num2;}if($num3&gt;$max){$max=$num3;}return$max;}该函数接受3个

2025-02-08 13:58:12
PHP处理数组常用的几个函数(php 数组 将指定元素移至末尾)
PHP处理数组常用的几个函数(php 数组 将指定元素移至末尾)

PHP处理数组常用的几个函数一、数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr)

2024-08-25 02:12:44
PHP函数不支持的功能有(一文看懂 PHP 7.3 更新)
PHP函数不支持的功能有(一文看懂 PHP 7.3 更新)

PHP函数不支持的功能有PHP函数不支持的功能:可变的函数名称;通过指针传递参数。php函数简介:任何有效的php代码都有可能出现在函数内部,甚至包括其它函数和类定义。创建PHP函数:函数是通过调用函数来执行的。PHP函数准则:函数的名称应该提示出它的功能;函数名称以字母或下划线开头,不能以数字开头。一文看懂PHP7.3更新PHP目前依然作为竞争激烈的脚本语言

2025-01-22 23:10:27
如何在PHP中使用常量指定PI的值计算圆的面积
如何在PHP中使用常量指定PI的值计算圆的面积

PHPFilesystemPHPFilesystem常量在PHP中,有一些内置的常量,它们对于文件和目录操作至关重要。这些常量在不同版本的PHP中提供支持,用来控制文件系统的特定行为。以下是一些关键的PHPFilesystem常量及其功能描述:PHPGLOB_BRACE:用于在glob()函数中表示通配符的花括号({}),例如`{*.{txt,php}}`,这将匹配所有以"

2024-08-11 10:44:43
PHP如何取二维数组中的某列的最大值和最小值?
PHP如何取二维数组中的某列的最大值和最小值?

PHP如何取二维数组中的某列的最大值和最小值?需要准备的材料分别是:电脑、php编辑器、浏览器。1、首先,打开php编辑器,新建php文件,例如:index.php,定义一个二维数组,以取第2列的最值为例。2、在index.php中,输入代码:$a=[[11,5,24,8,3],[3,54,78,64,9],];echo'max='.max($a[1]).

2024-08-18 12:26:22
php的column函数 PHP8中查询数组中指定元素-PHP8知识详解
php的column函数 PHP8中查询数组中指定元素-PHP8知识详解

PHP8中查询数组中指定元素-PHP8知识详解PHP是广泛应用的web编程语言,数组作为数据集合在程序开发中经常使用。在操作数组时,有时需要查询数组中是否有特定元素。以下几种方法在PHP8中用于查询数组中的指定元素:1.使用`array_search()`函数查询数组元素。若存在,返回该元素的键名;若不存在,返回`false`。示例代码如下:在PHP8环境运行此代码后,若找

2024-12-23 10:54:36