ホームページ  >  記事  >  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. フィルター

新しい 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.再コード

##3.WDDX

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