ホームページ >バックエンド開発 >PHP7 >PHP5からPHP7を一気に扱う場合の注意点

PHP5からPHP7を一気に扱う場合の注意点

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-06-08 09:15:213272ブラウズ

この記事ではPHP5からPHP7までの注意点を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP5からPHP7を一気に扱う場合の注意点

PHP7 が一般的な傾向です。 PHP7 には、より多くの新機能があり、パフォーマンスが向上し、速度が向上しています。また、今年8月7日よりPHP7.0のbeta3がリリースされ、近々PHP7のRC1版もリリースされる予定です。そのペースはますます近づいており、より多くの人が PHP7 の新機能を学習しています。 PHPアカデミーではPHP7の新機能を連載していきます。

さらに、新しいことに挑戦するのが好きな国内の PHPer の中には、すでに PHP7 をインストールしている人もいます。 PHP7 にはどのような新機能があるのか​​見てみましょう。

今日は、PHP によって推進されているいくつかのスタイルについて説明します。元の PHP4 では一部のスタイルが無効になっています。

1. PHP5 がリリースされたときに ASP プログラマを喜ばせるために、PHP はすべての asp_tag を禁止する準備をしました。

将来的には 72637aecae1027e7d023ac098a170986 スタイルは存在しないでしょう、そして PHP style ステートメントはサポートされなくなります。

<script language="php"></script>

2、コンストラクターの使用など、PHP4 の構文スタイルのいくつかの点は、新しい PHP7 では完全に廃止されます。 PHP7 では、エラー メッセージ E_DEPRECATED が表示されます。

<?php
class foo {
    //方法名类名相同的构造函数的用法不再兼容     
    function foo() {         
        echo &#39;I am the constructor&#39;;     
    } 
  }
?>

1. 定義された定数の定義は、スカラーだけでなく配列もサポートします

<?php

define(&#39;PHPXY&#39;, array(
    &#39;凤姐&#39;,
    &#39;芙蓉姐姐&#39;,
    &#39;杨幂是臭脚&#39;
));

echo PHPXY[1]; // 输出的结果是“芙蓉姐姐”
?>

2. 比較する場合、文字列と配列を比較できる 96b4fef55684b9312718d5de63fb7121 をサポートします。整数型。

<?php

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

コメント: 実際のユーザー数はそれほど多くなく、実際の業務での使用率はそれほど高くないと考えられます

3. 関数の必須パラメータ型指定は PHP7 でサポートされています

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, &#39;3&#39;, 4.1));

//本例中会输出9,你想想为什么哟?——因为强制规定为了整型

コメント: function funcName(... パラメータ) は PHP5.6 でサポートされています。これが PHP7

4 の知識ポイントであるとは思わないでください。戻り値の型も必須です

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

5。外部から呼び出される新しい呼び出しメソッドが追加され、匿名関数は次のようになります。オブジェクトを入力して呼び出しを完了します

class A {private $x = 1;}

// Pre PHP 7 code
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, &#39;A&#39;); // intermediate closure
echo $getX();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

6.メンバー メソッドでは、特定のクラス型を返す必要があることも規定できます

class A {}
class B extends A {}

class C
{
    public function test() : A
    {
        return new A;
    }
}

PHP7 のいくつかの関数を削除する必要があります。

PHP マニュアルでは、バージョンアップに合わせて、PHP7 で削除された機能を整理して説明しています。プロジェクトでこれらの関数を使用する場合は、プロジェクト全体で検索して変更してください。

1. call_user_method() および call_user_method_array()

2. mcrypt_generic_deinit() を優先する mcrypt_generic_end() エイリアス

3. 非推奨の mcrypt_ecb()、mcrypt_cbc() 、 mcrypt_decrypt() パラメーターを優先する mcrypt_cfb() および mcrypt_ofb() MCRYPT_MODE_*

4. datefmt_set_timezone() または IntlDateFormatter::setTimeZone() を優先し、非推奨の datefmt_set_timezone_id() および IntlDateFormatter::setTimeZoneID()

5. set_magic_quotes_runtime() とそのエイリアス関数 magic_quotes_runtime()

6. set_socket_blocking() はそのエイリアス関数 stream_set_blocking()

7. fast-cgi の dl( より) )

8. T1Lib は削除をサポートしているため、次の項目を削除します: imagepsbbox()、imagepsencodefont()、imagepsextendedfont()、imagepsfreefont()、imagepsloadfont()、imagepsslantfont()、imagepstext()

PHP7 の新機能の連載計画が若干遅れましたが、PHP7 RC1 バージョンの公式プレスリリースを翻訳しました。皆様お待ちかねのPHP7.0 RC1版です。

いわゆる RC バージョンは、間もなく正式にリリースされるバージョンです。 (リリース候補) は、ソフトウェアで使用される場合の候補バージョンです。システム プラットフォームはリリース候補バージョンです。 RC バージョンでは新しい機能は追加されず、主にデバッグに重点が置かれます。

PHP 開発チームは、バージョン PHP 7.0.0 RC 1 が間もなく利用可能になるバージョンであると発表しました。詳細にテストし、発生した問題を PHP のバグ追跡システムに報告できます。

バグ テストの送信先のアドレスは: https://bugs.php.net/

1. PHP7 は php 5.6

2 の 2 倍高速です。アップデートは良好です。 64 ビット オペレーティング システムのサポート

##3. さらなるエラー サポートと新しいエラー トラップ

##4. 一部のサポートされていない関数、サポートされていない SAPI および拡張機能を削除

#5. Null 合体演算子(??)

6. 包括的な比較演算子 (96b4fef55684b9312718d5de63fb7121)

7. 戻り値の型宣言

8. スカラー型宣言

9. 匿名クラス

PHP はいくつかの関数を削除しましたが、そのうちの 2 つは恐ろしいものです:

1. ereg_* シリーズの通常の関数

2. Mysql_* シリーズのデータ​​ベース接続関数

PHP7 では Mysql 拡張機能のサポートが完全に削除され、元の mysql_* シリーズの関数は mysql でサポートされなくなります。したがって、アプリケーション システムがまだデータベースに接続するために mysql_* シリーズの関数を使用している場合は、できるだけ早く mysql シリーズの関数をアップグレードしてください。

PHP7 によってどのような拡張機能が削除されたかを見てみましょう:

1. ereg
  • 2. mssql
  • #3. mysql

  • #4. sybase_ct

  • ##代替処理とソリューション:
  • 1. Microsoft の SQL サーバー データベースに接続する場合は、PDO ソリューションを使用してください。

  • 2. データベースに接続するために mysql シリーズの機能拡張を使用する場合は、より効率的な mysql_nd を使用してください一連の機能です。より効率が高くなります

3. eregシリーズをご使用の場合は早めに交換してください。

4. sybase_ct を sybase* シリーズに変更します

SAPI とは何かを知らない友人も多く、SAPI と PHP の関係も知りません。この章では、PHP7 で削除された SAPI を理解しながら、SAPI の内部処理の仕組みについて詳しく学ぶことができます。 PHP と SAPI は削除されました

SAPI とは、特定の PHP アプリケーションのプログラミング インターフェイスを指します。PC と同様に、どのオペレーティング システムがインストールされていても、PC インターフェイスの仕様を満たしていれば実行できます。 PHP スクリプトは、Web サーバー経由、コマンド ラインから直接実行する、または他のプログラムに埋め込むなど、さまざまな方法で実行できます。

  • #aolserver

  • apache

  • #apache_hooks
  • apache2filter
  • caudium
  • 継続性
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • ロクセン
  • #thttpd
  • #tux

  • #webjames

  • 上記の SAPI はサポートされません。

    推奨学習:
  • php ビデオ チュートリアル

以上がPHP5からPHP7を一気に扱う場合の注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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