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

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

藏色散人
藏色散人앞으로
2019-12-26 14:48:375305검색

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 = [&#39;apple&#39;, &#39;pear&#39;];
$fruits = [&#39;banana&#39;, &#39;orange&#39;, ...$parts, &#39;watermelon&#39;];//[&#39;banana&#39;, &#39;orange&#39;, &#39;apple&#39;, &#39;pear&#39;, &#39;watermelon&#39;];
//老的写法
$fruits = array_merge([&#39;banana&#39;, &#39;orange&#39;],$parts,[&#39;watermelon&#39;]);

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

<?php
$array[&#39;key&#39;] ??= computeDefault();
// 老的写法
if (!isset($array[&#39;key&#39;])) {
    $array[&#39;key&#39;] = 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,[&#39;p&#39;,&#39;a&#39;,&#39;div&#39;]);
//老的写法
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

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제