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

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

Jun 08, 2021 am 09:15 AM
php5 php7

この記事では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 を禁止する準備をしました。

将来的には <% %> スタイルは存在しないでしょう、そして 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. 比較する場合、文字列と配列を比較できる <=> をサポートします。整数型。

<?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. 包括的な比較演算子 (<=>)

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

php5とphp8の違いは何ですか php5とphp8の違いは何ですか Sep 25, 2023 pm 01:34 PM

php5 と php8 の違いは、パフォーマンス、言語構造、型システム、エラー処理、非同期プログラミング、標準ライブラリ関数、セキュリティの点です。詳細な紹介: 1. パフォーマンスの向上. PHP5 と比較して、PHP8 はパフォーマンスが大幅に向上しています. PHP8 では、高頻度の実行コードをコンパイルおよび最適化できる JIT コンパイラーが導入されており、それによって実行速度が向上しています; 2. 言語構造の改善、 PHP8 では、いくつかの新しい言語構造と関数が導入されており、PHP8 では名前付きパラメータがサポートされており、開発者はパラメータの順序などの代わりにパラメータ名を渡すことができます。

php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? Apr 02, 2024 pm 07:39 PM

PHP 7.0 でインストールされているプラ​​グインが表示されない問題を解決するには: プラグインの設定を確認し、プラグインを有効にします。 PHP を再起動して、構成の変更を適用します。プラグイン ファイルの権限をチェックして、それらが正しいことを確認します。不足している依存関係をインストールして、プラグインが適切に機能することを確認します。他のすべての手順が失敗した場合は、PHP を再構築します。他に考えられる原因としては、プラグインのバージョンに互換性がない、間違ったバージョンをロードしている、PHP 構成の問題などが挙げられます。

php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 Mar 22, 2023 am 09:30 AM

php5 では、fsockopen() 関数を使用して TCP ポートを検出できます。この機能を使用して、ネットワーク接続を開き、ネットワーク通信を実行できます。ただし、php7 では、fsockopen() 関数でポートを開けない、サーバーに接続できないなどの問題が発生する可能性があります。この問題を解決するには、socket_create() 関数とsocket_connect() 関数を使用して TCP ポートを検出します。

php7.0にmongo拡張機能をインストールする方法 php7.0にmongo拡張機能をインストールする方法 Nov 21, 2022 am 10:25 AM

php7.0 に mongo 拡張機能をインストールする方法: 1. mongodb ユーザー グループとユーザーを作成します; 2. mongodb ソース コード パッケージをダウンロードし、ソース コード パッケージを "/usr/local/src/" ディレクトリに配置します; 3. 「src/」ディレクトリに入ります; 4. ソースコードパッケージを解凍します; 5. mongodb ファイルディレクトリを作成します; 6. ファイルを「mongodb/」ディレクトリにコピーします; 7. mongodb 設定ファイルを作成して設定を変更します。

php5でポート80を変更する方法 php5でポート80を変更する方法 Jul 24, 2023 pm 04:57 PM

php5 でポート 80 を変更する方法: 1. Apache サーバー設定ファイルのポート番号を編集します; 2. PHP 設定ファイルを編集して、PHP が新しいポートで動作することを確認します; 3. Apache サーバーを再起動すると、PHP アプリケーションが起動します。新しいポートで実行を開始します。ポートで実行します。

php7.0のインストールとデプロイ方法 php7.0のインストールとデプロイ方法 Nov 30, 2022 am 09:56 AM

php7.0 をインストールおよび展開する方法: 1. PHP 公式 Web サイトにアクセスして、ローカル システムに対応するインストール バージョンをダウンロードします; 2. ダウンロードした zip ファイルを指定したディレクトリに解凍します; 3. コマンド ライン ウィンドウを開いて、次のリンクに移動します。 「E:\php7」ディレクトリ 「php -v」コマンドを実行するだけです。

PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する Apr 09, 2024 pm 01:33 PM

PHP サーバー環境の一般的な解決策には、正しい PHP バージョンがインストールされていること、および関連ファイルがモジュール ディレクトリにコピーされていることを確認することが含まれます。 SELinux を一時的または永続的に無効にします。 PHP.ini をチェックして構成し、必要な拡張機能が追加され、正しく設定されていることを確認します。 PHP-FPM サービスを開始または再起動します。 DNS 設定に解決の問題がないか確認してください。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

See all articles