欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  神坛PHP

php8的特性以及配置

程序员文章站 2022-01-28 21:53:59
...

新增 WeakMap 特性

WeakMap 允许你创建对象到任意值的映射(类似 SplObjectStorage),同时也不会阻止作为键的对象被垃圾回收。如果某个对象键被垃圾回收,对应键值对将从集合中移除。


新增 ValueError 异常

PHP 8 引入了新的名为 ValueError 的内置异常类,它继承自 Exception 基类。每次当你传递值到函数时,如果是一个无效类型,则会抛出该异常,在 PHP 8 之前,这样的操作会导致警告。


重写方法时允许可变参数

当我们在子类重写父类方法时,任何数量的参数现在都可以被替换成可变参数


静态返回类型

PHP 8 中可以使用 static 关键字标识某个方法返回该方法当前所属的类,即使它是继承的


对象的类名字面量

PHP 8 中可以使用 $object::class 获取对象的类名,其返回结果和 get_class($object) 一样


变量语法调整

new 和 instanceof 关键字现在可以被用于任意表达式


Stringable 接口

PHP 8 引入了新的 Stringable 接口,只要某个类实现了 __toString 方法,即被视作自动实现了 Stringable 接口(咋和 Go 接口实现有点像),而不必显式声明实现该接口


throw 现在可以被用作表达式

throw 语句现在可以用在只允许表达式出现的地方,例如箭头函数、合并运算符和三元运算符等:


参数列表中允许出现可选的尾部逗号

和数组中的尾部逗号类似,现在也可以在参数列表中定义一个尾部逗号:


捕获异常而不存储到变量

现在可以编写 catch (Exception) 代码来捕获异常而不必将其存储到一个变量中:


新增对 mixed 类型的支持

PHP 8 引入了新的名为 mixed 的类型,该类型等价于 array|bool|callable|int|float|null|object|resource|string


常用配置:

扩展路径

extension_dir="D:\phpstudy_pro\Extensions\php\php7.3.9nts\ext"

错误日志

error_log=D:/phpstudy_pro/Extensions/php/php7.3.9nts.log

session路径

session.save_path="D:\phpstudy_pro\Extensions\tmp\tmp"

curl证书路径

curl.cainfo =D:\phpstudy_pro\Extensions\php\php7.3.9nts\cacert\cacert.pem

error_reporting=E_ALL & ~E_NOTICE

html_errors=On

max_input_vars=3000

date.timezone=Asia/Shanghai

sqlite3.defensive = 1

留意:8缺少Interbase

zend_extension=opcache

opcache.enable=0

opcache.enable_cli=1

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=10000

opcache.max_wasted_percentage=5

opcache.revalidate_freq=60

opcache.use_cwd=1

opcache.validate_timestamps=1

opcache.save_comments=1

opcache.enable_file_override=Off

opcache.fast_shutdown=1

opcache.mmap_base=0x20000000