当前位置: 首页 > news >正文

婚纱摄影网站模板ip域名找网站

婚纱摄影网站模板,ip域名找网站,wordpress开启hppts后格式,网站建设和维护教程PHP 8#xff0c;PHP 的一个新的大版本#xff0c;预计将于2020年12月3日发布#xff0c;这意味着将不会有 PHP 7.5 版本。PHP8目前正处于非常活跃的开发阶段#xff0c;所以在接下来的几个月里#xff0c;情况可能会发生很大的变化。在这篇文章中#xff0c;我会维持一个…PHP 8PHP 的一个新的大版本预计将于2020年12月3日发布这意味着将不会有 PHP 7.5 版本。PHP8目前正处于非常活跃的开发阶段所以在接下来的几个月里情况可能会发生很大的变化。在这篇文章中我会维持一个最新的清单列表列出预计会出现的新特性、性能提升和突破性的变化。由于 PHP 8 是一个新的大版本因此您的代码被破坏的可能性更高。如果您始终保持运行 PHP 的最新版本那么升级相对来说就会轻松很多因为在7. *版本中大多数重大更改均已弃用。除重大更改外PHP 8还带来了一些不错的新功能比如说 JIT编译器, 联合类型, 属性以及更多。新特性从新特性开始请记住 PHP8 仍处于活动开发阶段因此此列表将随着时间的推移而增长。联合类型考虑到 PHP 动态语言类型的特性现在很多情况下联合类型都是很有用的。联合类型是两个或者多个类型的集合表示可以使用其中任何一个类型。public function foo(Foo|Bar $input): int|float;请注意联合类型中不包含 void因为void 表示的含义是“根本没有返回值”。 另外可以使用 |null 或者现有的 ? 表示法来表示包含 nullable 的联合体 public function foo(Foo|null $foo): void;public function bar(?Bar $bar): void;JITJIT — just in time — 编译器虽然不总是在 Web 请求的上下文中但是有望显着地提高性能。目前还没有完成任何准确的基准测试但是肯定会到来。如果您想进一步了解JIT对PHP的作用可以阅读我写过的另一篇文章此处。属性属性在其他语言中通常被称为 注解 提供一种在无需解析文档块的情况下将元数据添加到类中的方法。快速浏览一下这里有一份来自 RFC 的属性示例use App\Attributes\ExampleAttribute;class Foo{public const FOO foo;public $x;public function foo( $bar) { }}class ExampleAttribute{public $value;public function __construct($value){$this-value $value;}}如果您想深入了解属性如何工作以及如何构建自己的属性您可以在此博客上阅读有关深入属性的信息。新增 static 返回类型尽管已经可以返回 self但是 static 直到 PHP 8 才是有效的返回类型 。考虑到 PHP 具有动态类型的性质此功能对于许多开发人员将非常有用。class Foo{public function test(): static{return new static();}}新增 mixed 类型有人可能将其称为必要的邪恶mixed 类型让许多人感觉十分混乱。然而有一个很好的论据支持去实现它缺少类型在 PHP 中会导致很多情况函数不返回任何内容或返回空值我们需要多种类型的一种类型我们需要的是PHP中不能进行类型提示的类型因为上述原因添加 mixed 类型是一件很棒的事儿。mixed 本身代表下列类型中的任一类型arrayboolcallableintfloatnullobjectresourcestring请注意mixed 不仅仅可以用来作为返回类型还可以用作参数和属性类型。另外还需要注意因为 mixed 类型已经包括了 null因此 mixed 类型不可为空。下面的代码会触发致命错误// 致命错误混合类型不能为空null已经是混合类型的一部分。function bar(): ?mixed {}throw 表达式该RFC将throw从一个语句更改为一个表达式这使得可以在很多新地方抛出异常$triggerError fn () throw new MyError();$foo $bar[offset] ?? throw new OffsetDoesNotExist(offset);弱映射基于在 PHP 7.4 中新增的 弱引用 RFCPHP 8 中新增了 WeakMaps(弱映射)的实现。 WeakMaps(弱映射)在保持对一些对象的引用的同时并不会组织这些对象被垃圾回收机制处理 。以ORM为例它们通常实现保存对实体类的引用的缓存从而提高实体类之间关联的性能。 只要缓存中存在对这些实体类的引用那么这些类就无法被垃圾回收机制回收尽管除了缓存中已经没有别处再引用这些实体类它们依然不会被垃圾处理机制处理。如果这个缓存层使用了弱引用和弱映射那么 PHP 将会在这些实体类没有任何其他引用时对其进行垃圾回收。 尤其是对于 ORMs它可以管理一个请求中的数百个(如果不是数千个)实体弱映射可以提供一种更好的、对资源更友好的方式来处理这些对象。下面是弱映射基本的例子摘抄自 RFC class Foo{private WeakMap $cache;public function getSomethingWithCaching(object $obj): object{return $this-cache[$obj]?? $this-computeSomethingExpensive($obj);}}允许对对象使用 ::class一个很小但是很有用的新特性现在可以在对象上使用 :: class 而不必在对象上使用 get_class() 它的工作方式跟 get_class() 相同。$foo new Foo();var_dump($foo::class);Non-capturing catches在PHP 8 之前无论何时你想要捕获一个异常你都需要先将其存储到一个变量中不管这个变量你是否会用到。通过 Non-capturing catches 你可以忽略变量所以替换下面的代码try {// Something goes wrong} catch (MySpecialException $exception) {Log::error(Something went wrong);}你现在可以这么做try {// Something goes wrong} catch (MySpecialException) {Log::error(Something went wrong);}请注意必须始终指定类型不允许将 catch 留空如果你想要捕获所有类型的异常和错误需要使用 Throwable 作为捕获类型。参数列表中的尾部逗号当调用函数时已经支持尾部逗号但是参数列表中仍然缺少尾随逗号支持。现在PHP8中允许这样做这意味着您可以执行以下操作public function(string $parameterA,int $parameterB,Foo $objectfoo,) {// …}从接口创建DateTime 对象你已经可以使用 DateTime::createFromImmutable($immutableDateTime) 从 DateTimeImmutable 对象创建一个 DateTime 对象 而另一种方法则更加取巧。通过添加DateTime::createFromInterface()和DatetimeImmutable::createFromInterface()现在有一种通用的方法可以将DateTime和DatetimeImmutable对象相互转换。DateTime::createFromInterface(DateTimeInterface $other);DateTimeImmutable::createFromInterface(DateTimeInterface $other);新增 Stringable接口Stringable接口可用于键入提示任何字符串或实现__ toString()的内容。此外每当一个类实现__ toString()时它就会自动实现后台接口而无需手动实现。class Foo{public function __toString(): string{return foo;}}function bar(Stringable $stringable) { /* … */ }bar(new Foo());bar(abc);新增 str_contains() 函数 rfc有些人可能会说这是早该发生的但我们最终不必再依赖strpos来知道一个字符串是否包含另一个字符串。无需这样做if (strpos(string with lots of words, words) ! false) { /* … */ }你可以这样做if (str_contains(string with lots of words, words)) { /* … */ }新增 str_starts_with() 和 str_ends_with() 函数这是另外两个早该出现的函数现在已在核心函数中添加了这两个函数。str_starts_with(haystack, hay); // truestr_ends_with(haystack, stack); // true新增 fp() 函数新的fp()函数的作用类似于fmod()和intp()函数它们可以除以0。视情况而定将得到INF-INF或NAN。新增 get_debug_type() 函数get_debug_type()返回变量的类型听起来好像跟 gettype() 的作用一样啊get_debug_type() 可以为数组字符串匿名类和对象返回更有用的输出信息。例如在类\ Foo \ Bar上调用gettype()将返回object而使用get_debug_type()将返回类名。如下表Valueget_debug_type()gettype()0intinteger0.1floatdoubletrueboolbooleanfalseboolboolean“hello”string[]arraynullnullNULLA class with name “Foo\Bar”Foo\BarobjectAn anonymous classclassanonymousobjectA resourceresource (xxx)resourceA closed resourceresource (closed)可以在RFC中找到get_debug_type()和gettype()之间的差异的完整列表。新增 get_resource_id() 函数资源是PHP中的特殊变量指的是外部资源。一个示例是MySQL连接另一个是文件句柄。这些资源中的每一个都分配有一个ID然而在这之前如果想获取某资源的ID唯一方法是将资源转换为int$resourceId (int) $resource;PHP 8添加了get_resource_id()函数使此操作更加明显且类型安全$resourceId get_resource_id($resource);Traits 改进中的抽象方法Traits 可以指定必须由使用它们的类所实现的抽象方法。需要注意的是 在 PHP 8 之前尚未验证这些方法已经实现的标识。以下内容有效trait Test {abstract public function test(int $input): int;}class UsesTrait{use Test;public function test($input){return $input;}}当使用 Traits 并实现其抽象方法时PHP 8将执行适当的方法进行标识验证抽象方法是否确实被实现。这意味着您需要编写以下代码class UsesTrait{use Test;public function test(int $input): int{return $input;}}token_get_all() rfc的对象实现token_get_all()函数返回一个值数组该RFC使用PhpToken :: getAll()方法新增了PhpToken类。此实现适用于对象而不是普通值。它消耗更少的内存并且更易于阅读。可变语法调整在RFC中“统一变量语法RFC解决了PHP变量语法中的许多不一致之处。该RFC旨在解决一小部分被忽略的情况。”内部函数的类型注解许多人 投入 了为所有内部函数添加适当的类型注释的工作。这是一个长期存在的问题最终可以通过以前版本中对PHP所做的所有更改来解决。这意味着内部函数和方法将在反射中具有完整的类型信息。重大变化如前所述这是一个重大更新因此会有重大变化。最好的办法是查看 升级 文档中所列的重大变化的完整列表。许多这些突破性的更改在以前的 7.* 版本中已被弃用因此如果你多年来一直保持 PHP 在最新状态升级到 PHP 8 应该没那么难。一致的类型错误 rfc之前版本在出现类型错误时PHP 中的用户定义函数已经会抛出 TypeErrors但是内部函数不会这么做而是发出警告并返回 null。从 PHP 8 开始内部函数的行为已变得和用户定义函数一致。重新分类的引擎警告 rfc许多以前仅触发警告或通知的错误已转换为适当的错误。以下警告已更改。变量未定义Error 异常代替通知数组索引未定义警告代替通知除以零pisionByZeroError 异常代替警告尝试添加/移除非对象的属性 %s Error 异常代替警告尝试修改非对象的属性 %s Error 异常代替警告尝试分配非对象的属性 %s Error 异常代替警告从空值创建默认对象Error 异常代替警告尝试获取非对象的属性 %s 警告代替通知未定义的属性%s::$%s警告代替通知无法添加元素到数组因为下一个元素已被占用Error 异常代替警告无法在非数组变量中销毁偏移量Error 异常代替警告无法将标量值用作数组Error 异常代替警告只有数组和 Traversables 可以被解包TypeError 异常代替警告为 foreach() 提供了无效的参数TypeError 异常代替警告偏移量类型非法TypeError 异常代替警告isset 或 empty 中的偏移量类型非法TypeError 异常代替警告unset 中的偏移量类型非法TypeError 异常代替警告数组到字符串的转换警告代替通知资源 ID#%d 用作偏移量转换为整数 (%d)警告代替通知发生字符串偏移量转换警告代替通知未初始化的字符串偏移量%d警告代替通知无法将空字符串分配给字符串偏移量Error 异常代替警告提供的资源不是有效的流资源TypeError 异常代替警告 运算符不再使致命错误不提醒此更改可能会使 PHP 8 之前的版本被 隐藏的错误再次显示出来。请确保在生产服务器上设置了 display_errorsOff 默认错误报告级别现在的默认错误报告级别是 E_ALL 而不是之前的除 E_NOTICE 和 E_DEPRECATED 的所有内容。这意味着可能会弹出许多错误这些错误以前曾被忽略尽管在 PHP 8 之前的版本中可能已经存在。默认 PDO 错误模式 rfc根据RFC当前 PDO 的默认错误模式为静默。这意味着当出现 SQL 错误时除非开发人员实现了自己的显式错误处理否则不会发出任何错误或警告也不会引发任何异常。此 RFC 将在 PHP 8 中将默认 PDO 错误模式 改为PDO::ERRMODE_EXCEPTION 。串联优先级 rfc在 PHP 7.4 中已废弃的同时此变更开始生效。如果你像这样子书写echo sum: . $a $b;PHP 以前会如是理解echo (sum: . $a) $b;PHP 8 将这么做故理解为此echo sum: . ($a $b);更严格的算术和位运算类型检查PHP 8 以前算术或位运算符用于数组、资源或对象是可接受的。现在不再可接受并会抛出一个 类型错误 [] % [42];$object 4;反射方法签名变更反射类的 3 个方法签名已变更ReflectionClass::newInstance($args);ReflectionFunction::invoke($args);ReflectionMethod::invoke($object, $args);现在已变成ReflectionClass::newInstance(...$args);ReflectionFunction::invoke(...$args);ReflectionMethod::invoke($object, ...$args);升级指南指定如果要扩展这些类并且仍想同时支持 PHP 7 和 PHP 8则允许以下签名ReflectionClass::newInstance($arg null, ...$args);ReflectionFunction::invoke($arg null, ...$args);ReflectionMethod::invoke($object, $arg null, ...$args);几个弃用在PHP 7. * 的开发期间添加了几个弃用版本这些弃用已于 PHP 8 最终确定。PHP 7.2 中的弃用PHP 7.3 中的弃用PHP 7.4 中的弃用
http://www.pierceye.com/news/536348/

相关文章:

  • 网站的站点的管理系统网站建设组织架构
  • 怎么制作网站视频教程wordpress 导入图片
  • 淘宝网发布网站建设wordpress不能翻页
  • 怎么样可以做网站wordpress gallery widget
  • 湖北网站推广公司技巧自己做app的软件
  • 网站梦打开又提示无法访问dw网页设计代码茶文化
  • 阳江营销型网站建设wordpress防攻击插件
  • 深圳电信网络建站东莞房价2022最新价格
  • 昆山营销型网站建设温州网上商城网站建设
  • 网站html动态效果asp化妆品网站源码
  • 丹东网站seo国家企业工商网查询
  • 好看云在线网站模板江西省建设厅教育网站
  • 小网站百度做一个网站怎么做呢
  • 城市分站seoseo相关岗位
  • 购物网站开发语言wordpress分类指定页面
  • 中企动力做网站的优势做招聘网站经营范围
  • 重庆企业网站排名优化方法百度录入网站
  • 做薪酬调查有哪些网站校园二手交易网站设计的原则
  • 建设电子商务网站的方法有?网站架构图
  • 网站运营阶段wordpress首页没有显示文章图片
  • 2个小时学会网站建设手机兼职快递录单员
  • 以前有个自助建设网站东莞路桥投资建设公司招聘
  • 电子游艺网站开发常德seo技术
  • 河北邢台wap网站建设南昌网页制作
  • 山东建设人才网站高端母婴网站模板
  • 物业服务网站建设佛山做网站公司有哪些
  • 企业网站模板中文网站域名名字
  • 在服务器网站上做跳转网页设计代码动漫
  • 科协网站建设的意见合肥哪里有做网页的地方
  • 为企业做网站策划案永康网站推广