찾다
헤드라인PHP 7.4는 2019년 12월에 출시될 예정입니다.

PHP 7.4는 2019년 12월에 출시될 예정입니다. 이 페이지는 정기적으로 업데이트됩니다.

<strong>미리 로드 중</strong><strong>미리 로드 중</strong> rfc
<strong>Preloading</strong>预加载 rfc

Preloading(预加载)是对PHP核心的一个惊人的补充,它可以带来一些主要的性能改进。

简而言之:如果你今天使用的是框架,那么它的文件必须在每次请求时加载和重新编译。预加载允许服务器在启动时在内存中加载PHP文件,并使它们对所有后续请求永久可用。

性能的提高当然是有代价的:如果预加载文件的来源发生变化,则必须重新启动服务器。

<strong>Typed properties</strong> rfc

类变量可以是类型提示:

class A
{
    public string $name;
    
    public Foo $foo;
}

更新:到目前为止,已合并了Typed properties,从而为PHP 7.4确认了这些属性。

<strong>Improved type variance</strong>(改进的类型差异) rfc

我以前写过关于PHP类型系统的文章,所以很高兴看到PHP内核中出现了一些改进。

类型差异是一个值得自己发表博文的主题;

简而言之:你将能够使用covariant返回类型

class ParentType {}
class ChildType extends ParentType {}

class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}

class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}

contravariant参数。

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}

class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}

更新:RFC目前处于投票阶段,但看起来它会毫无问题地通过。

<strong>Foreign Function Interface</strong>(外部函数接口) rfc

外部函数接口,简称FFI,允许从用户域调用C代码。这意味着PHP扩展可以用纯PHP编写。

值得注意的是,这是一个复杂的话题。你仍然需要C知识才能正确地使用这个特性。

<strong>Null</strong>合并赋值操作符 rfc

不是这样做:

$data[&#39;date&#39;] = $data[&#39;date&#39;] ?? new DateTime();

你可以这样做:

$data[&#39;date&#39;] ??= new DateTime();

更新:这个特性现在合并到PHP 7.4中。

自定义对象序列化 rfc

这个RFC添加了两个新的魔术方法:__serialize__unserialize。在RFC中讨论了这些方法与__sleep__wakeup方法的区别。

更新:RFC通过。这个特性将在PHP 7.4中添加。

<strong>No more narrow margins</strong> rfc

从技术上讲,这并不是一个与PHP 7.4相关的更新,但它确实值得一提。RFC的投票规则已经改变:他们总是需要2/3的多数才能通过。

<strong>Reflection for references</strong> rfc

像Symfony的var转储程序这样的库很大程度上依赖于反射API来可靠地转储变量。以前,没有对引用的适当反射支持,导致这些库依赖hack来检测引用。

PHP 7.4添加了ReflectionReference类,解决了这个问题。

更新:RFC已通过,PHP 7.4已确认更改。

添加mb_str_split rfc

这个函数提供了与str_split相同的功能,但是是在多字节字符串上。

始终启用ext-hash rfc

正如标题所说,这个扩展现在在所有PHP安装中都是永久可用的。

默认情况下不启用PEAR

由于PEAR不再积极维护,核心团队决定用PHP 7.4删除其默认安装。

密码哈希(Hashing)注册表 rfc

内部更改哈希库的使用方式,以便用户更容易地使用它们。

弃用<strong>ext / wwdx</strong> rfc

这种数据交换格式从来没有标准化过,现在它的扩展被废弃了。

向后不兼容的变更升级

在升级PHP版本时,应该始终查看完整的升级文档

以下是突出显示的一些向后不兼容的更改:

parent::

사전 로드(사전 로드)는 몇 가지 주요 성능 향상을 가져오는 놀라운 PHP 코어 추가 기능입니다. #🎜🎜##🎜🎜# 간단히 말해서, 현재 프레임워크를 사용하고 있다면 요청이 있을 때마다 해당 파일을 로드하고 다시 컴파일해야 합니다. 사전 로드를 사용하면 서버가 시작 시 메모리에 PHP 파일을 로드하고 이후의 모든 요청에 ​​영구적으로 사용할 수 있도록 할 수 있습니다. #🎜🎜##🎜🎜# 성능 향상에는 비용이 따릅니다. 미리 로드된 파일의 소스가 변경되면 서버를 다시 시작해야 합니다. #🎜🎜##🎜🎜#<strong>유형화된 속성</strong> rfc #🎜🎜##🎜🎜# 클래스 변수는 유형 힌트를 사용할 수 있습니다: #🎜🎜#rrreee#🎜🎜# 업데이트: 유형이 지정된 속성이 지금까지 병합되어 PHP 7.4에 대해 확인되었습니다. #🎜🎜##🎜🎜#<strong>향상된 유형 변화</strong>(향상된 유형 변화) rfc#🎜🎜##🎜🎜#PHP 유형 시스템에 대해 이전에 작성한 적이 있으므로 일부 내용을 보니 반갑습니다. PHP 코어에 개선 사항이 나타났습니다. #🎜🎜##🎜🎜#유형 차이는 자체 블로그 게시물에 올릴 만한 주제입니다.#🎜🎜##🎜🎜#간단히 말하면 공변 반환 유형을 사용할 수 있습니다#🎜 🎜# rrreee#🎜🎜# 및 반공변 매개변수. #🎜🎜#rrreee#🎜🎜#업데이트: RFC는 현재 투표 단계이지만 문제 없이 통과될 것으로 보입니다. #🎜🎜##🎜🎜#<strong>외부 함수 인터페이스</strong>(외부 함수 인터페이스) rfc#🎜🎜##🎜🎜#Foreign Function Interface(FFI)를 사용하면 사용자 도메인에서 C 코드를 호출할 수 있습니다. 이는 PHP 확장이 순수 PHP로 작성될 수 있음을 의미합니다. #🎜🎜##🎜🎜#이것이 복잡한 주제라는 점은 주목할 가치가 있습니다. 이 기능을 올바르게 사용하려면 여전히 C 지식이 필요합니다. #🎜🎜##🎜🎜#<strong>Null</strong>병합 할당 연산자 rfc#🎜🎜##🎜🎜# 다음을 수행하는 대신: #🎜🎜#rrreee#🎜🎜#다음을 수행할 수 있습니다: #🎜🎜#rrreee#🎜🎜#Update :이 기능은 이제 PHP 7.4에 병합되었습니다. #🎜🎜##🎜🎜#사용자 정의 객체 직렬화 rfc #🎜 🎜##🎜🎜#이 RFC에는 __serialize__unserialize라는 두 가지 새로운 매직 메서드가 추가되었습니다. 이러한 메서드와 __sleep__wakeup 메서드 간의 차이점은 RFC에 설명되어 있습니다. #🎜🎜##🎜🎜#업데이트: RFC가 통과되었습니다. 이 기능은 PHP 7.4에 추가될 예정입니다. #🎜🎜##🎜🎜#<strong>더 이상 좁은 여백 없음</strong> rfc#🎜🎜##🎜🎜#기술적으로 말하면, 이것은 PHP 7.4와 관련된 업데이트는 아니지만 확실히 언급할 가치가 있습니다. RFC에 대한 투표 규칙이 변경되었습니다. 통과하려면 항상 2/3의 과반수가 필요합니다. #🎜🎜##🎜🎜#<strong>참조 반영</strong> rfc#🎜🎜##🎜🎜#Symfony의 var dumper와 같은 라이브러리는 변수를 안정적으로 덤프하기 위해 리플렉션 API에 크게 의존합니다. 이전에는 참조에 대한 적절한 리플렉션 지원이 없었기 때문에 이러한 라이브러리는 참조를 감지하기 위해 해킹에 의존했습니다. #🎜🎜##🎜🎜#PHP 7.4에서는 이 문제를 해결하기 위해 ReflectionReference 클래스가 추가되었습니다. #🎜🎜##🎜🎜#업데이트: RFC 통과, PHP 7.4에 대한 변경 사항 확인. #🎜🎜##🎜🎜#mb_str_split rfc 추가 #🎜🎜##🎜🎜#이 함수는 str_split과 동일한 기능을 제공하지만 멀티바이트 문자열에 적용됩니다. #🎜🎜##🎜🎜#항상 ext-hash 활성화 rfc#🎜🎜##🎜🎜# 제목에서 알 수 있듯이 이 확장은 이제 모든 PHP 설치에서 영구적으로 사용할 수 있습니다. #🎜🎜##🎜🎜#PEAR은 기본적으로 활성화되어 있지 않습니다. #🎜🎜##🎜🎜# PEAR는 더 이상 적극적으로 유지 관리되지 않으므로 핵심 팀은 제거하기로 결정했습니다. PHP 7.4와 함께 기본적으로 설치됩니다. #🎜🎜##🎜🎜#비밀번호 해싱(Hashing) 레지스트리 rfc#🎜🎜##🎜🎜# 사용자가 더 쉽게 사용할 수 있도록 해시 라이브러리를 사용하는 방법이 내부적으로 변경되었습니다. #🎜🎜##🎜🎜#지원 중단됨<strong>ext / wwdx</strong> rfc#🎜🎜##🎜🎜#이 데이터 교환 형식은 표준화된 적이 없으며 해당 확장은 이제 더 이상 사용되지 않습니다. #🎜🎜##🎜🎜#이전 버전과 호환되지 않는 변경 사항 업그레이드#🎜🎜##🎜🎜#PHP 버전을 업그레이드할 때 항상 업그레이드 문서 전체. #🎜🎜##🎜🎜#다음은 이전 버전과 호환되지 않는 변경 사항 중 일부입니다. #🎜🎜##🎜🎜# • parent:: 부모 없이 클래스에서 참조하면 A 컴파일이 생성됩니다. 런타임 오류가 아닌 시간 오류입니다. #🎜🎜#

DateTime 또는 datetimevariable 인스턴스에서 var_dump를 호출하면 더 이상 개체에 액세스 가능한 속성이 남지 않습니다. DateTimedatetimevariable实例上调用var_dump将不再在对象上留下可访问的属性。

openssl_random_pseudo_bytes将在错误情况下抛出异常。

• 试图序列化PDOPDOStatement实例将生成异常,而不是PDOException

• 在ArrayObject实例上调用get_object_vars()将返回ArrayObject

openssl_random_pseudo_bytes는 오류 상황에서 예외를 발생시킵니다.

PDO 또는 PDOStatement 인스턴스를 직렬화하려고 하면 PDOException 대신 예외가 생성됩니다.

ArrayObject 인스턴스에서 get_object_vars()를 호출하면 래핑된 배열이나 객체의 값이 아닌 ArrayObject 자체의 속성이 반환됩니다. . (배열) 캐스트는 영향을 받지 않습니다.

번역 출처: https://stitcher.io/blog/new-in-php-74#reflection-for-references-rfc
관련 추천:

PHP7과 PHP5의 보안 차이(예)

PHP7의 추상 구문 트리(AST)가 가져온 변화

》🎜🎜 《🎜PHP7 언어의 실행 원리(PHP7 소스 코드 분석)🎜》🎜
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)