헤드라인 PHP7.4의 새로운 기능 및 더 이상 사용되지 않는 기능(요약)

PHP7.4의 새로운 기능 및 더 이상 사용되지 않는 기능(요약)

Dec 26, 2019 pm 02:48 PM

PHP7.4의 새로운 기능 및 더 이상 사용되지 않는 기능(요약)

PHP7.4의 새로운 기능과 버려진 기능 요약

PHP7.4 새로운 기능

PHP7.4가 지난달 28일 출시되었습니다. 몇 가지 새로운 기능을 가져왔습니다. 이를 통해 우리는 더 적은 양의 코드를 작성할 수 있습니다.

1. 속성에 정규화된 유형 추가

<?php
class User {
  public int $age;
  public string $name
}  
$user = new User();
$user->age = 10;
$user->name = "张三";
//error
$user->age = "zhang";//需要传递int
로그인 후 복사

2. 화살표 함수

이 기능은 기본적으로 Js의 ES6 구문을 참조합니다. 이를 통해 우리는 더 적은 양의 코드를 작성할 수 있습니다. 코드에 fn 함수가 있는 경우. 충돌할 수 있음

<?php
$factor = 10;
$nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30]
//之前的写法
$nums = array_map(function($num)use($factor){
  return $num * $factor;
},[1,2,3])
로그인 후 복사

3. 제한된 반환 유형 공분산 및 매개변수 유형 반공분산

전체 공분산/반공분산 지원은 자동 로딩을 사용할 때만 제공됩니다. 단일 파일 내에서는 모든 클래스를 참조하기 전에 사용할 수 있어야 하므로 비순환 유형 참조만 사용할 수 있습니다.

<?php
class A {}
class B extends A {}
class Producer {
    public function method(): A {}
}
class ChildProducer extends Producer {
    public function method(): B {}
}
?>
로그인 후 복사

4. 배열 압축해제

배열 연산자를 사용하여... 배열을 압축해제하세요. 이 기능은 js에서 흡수되어야 합니다. 예시

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];//['banana', 'orange', 'apple', 'pear', 'watermelon'];
//老的写法
$fruits = array_merge(['banana', 'orange'],$parts,['watermelon']);
로그인 후 복사

5를 참조하세요. Null 병합 연산자 할당

<?php
$array['key'] ??= computeDefault();
// 老的写法
if (!isset($array['key'])) {
    $array['key'] = computeDefault();
}
?>
로그인 후 복사

6. 숫자 리터럴 구분 기호

숫자 리터럴은 숫자 사이에 밑줄을 포함할 수 있습니다.

<?php
6.674_083e-11; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary
?>
로그인 후 복사

7. __toString()에서 예외 발생 허용

이제 __toString()에서 예외 발생이 허용됩니다. 이전에는 문자열 변환 시 복구 가능한 치명적인 오류가 오류 예외로 변환되었습니다.

8 결과가 어떨지 여쭤보니 걱정되네요. 사실 프로덕션에서는 다들 이렇게 쓰지는 않거든요.

2. 중괄호를 사용하여 배열 인덱스에 액세스

<?php
  filter_var(1.00,FILTER_VALIDATE_FLOAT);
filter.filters.validate
로그인 후 복사

솔직히 처음 봐서 버려서 사람들이 이런 식으로 사용하지 않는다는 걸 보여줍니다.

3. real 및 is_real 실수

<?php
  strip_tags($str,['p','a','div']);
//老的写法
strip_tags($str,"<p><a><div>");
로그인 후 복사
4. parent 키워드는 상위 클래스가 없는 클래스에서 사용됩니다.

부모 클래스가 없는 클래스에서 parent를 사용하면 컴파일 오류가 발생합니다.

<?php
1 ? 2 : 3 ? 4 : 5;   // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
로그인 후 복사
5.money_format 기능은 더 이상 사용되지 않으며 numberFormater

6으로 대체되었습니다. 확장 프로그램

1.Firebird/Interbase

2.Recode

3.WDDX

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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