ホームページ  >  記事  >  バックエンド開発  >  PHP7.4の新機能まとめ

PHP7.4の新機能まとめ

silencement
silencement転載
2020-01-26 22:25:083898ブラウズ

PHP7.4の新機能まとめ

PHP7.4 の新機能

PHP7.4 がリリースされました。いくつかの新機能が追加されました。これにより、記述するコードの量が減ります。

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. 数値リテラル区切り文字

Number リテラルには、数値の間にアンダースコアを含めることができます。

<?php
6.674_083e-11; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary
?>

7. __​​toString() から例外をスローできるようにします

__toString() から例外をスローできるようになりました。以前は、これは致命的なエラーを引き起こしていました。文字列内の既存の回復可能変換 致命的なエラーはエラー例外に変換されました。

8. Filter

FILTER_VALIDATE_FLOAT

<?php
  filter_var(1.00,FILTER_VALIDATE_FLOAT);
filter.filters.validate

9.strip_tags は配列をサポート

<?php
  strip_tags($str,[&#39;p&#39;,&#39;a&#39;,&#39;div&#39;]);
//老的写法
strip_tags($str,"<p><a><div>");
废弃的特性
1. 没有显式括号的嵌套三元运算符
<?php
1 ? 2 : 3 ? 4 : 5;   // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

インタビュー中、最後に、 , 結果がどうだったかを尋ねる心配はありません。実際、本番では誰もがこのようには書きません。

2. 配列インデックスにアクセスするための中括弧

<?php
$arr = ["a"=>"111"];
$index = "a";
$arr{$index}//废弃
$arr[$index];

正直に言うと、これは初めてです。これは、誰もこのように使用しないことを示しています。

3. real および is_real 実数

<?php
  $num = "";
  $a = (real) $num;//废弃
  $a = (float) $num;

4. 親クラスのないクラスでparentキーワードが使用されています

親のないクラスでparentが使用されている場合クラス、コンパイルが発生します。

<?php
  class Test{
  public function index() 
  {
    return parent::index();//编译错误
  }
}

5.money_format 関数

money_format は非推奨となり、numberFormater

6.削除された拡張機能

1.Firebird/Interbase
2.Recode
3.WDDX

以上がPHP7.4の新機能まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はwww.liqingbo.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。