検索
ホームページ見出しPHP7.4の新機能と非推奨機能(概要)

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で複製されています。侵害がある場合は、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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境