この記事では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 'I am the constructor'; } } ?>
1. 定義された定数の定義は、スカラーだけでなく配列もサポートします
<?php define('PHPXY', array( '凤姐', '芙蓉姐姐', '杨幂是臭脚' )); 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, '3', 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, 'A'); // 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
#3. mysql
1. Microsoft の SQL サーバー データベースに接続する場合は、PDO ソリューションを使用してください。
3. eregシリーズをご使用の場合は早めに交換してください。
4. sybase_ct を sybase* シリーズに変更します
SAPI とは何かを知らない友人も多く、SAPI と PHP の関係も知りません。この章では、PHP7 で削除された SAPI を理解しながら、SAPI の内部処理の仕組みについて詳しく学ぶことができます。 PHP と SAPI は削除されました
SAPI とは、特定の PHP アプリケーションのプログラミング インターフェイスを指します。PC と同様に、どのオペレーティング システムがインストールされていても、PC インターフェイスの仕様を満たしていれば実行できます。 PHP スクリプトは、Web サーバー経由、コマンド ラインから直接実行する、または他のプログラムに埋め込むなど、さまざまな方法で実行できます。
#tux
以上がPHP5からPHP7を一気に扱う場合の注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。