ホームページ php教程 php手册 PHP 5.0 および Outlook for PHP 6.0 の変更点

PHP 5.0 および Outlook for PHP 6.0 の変更点

Jun 21, 2016 am 08:59 AM
ext mysql php var

現在、ほとんどの PHP インストールでは依然として PHP 4.x バージョンが使用されています。実際、PHP 5.0 はしばらくリリースされており、現在 PHP 5.1.1 がリリースされたばかりです。これらの新しいバージョンにまだアップグレードしていない場合は、PHP の新しいバージョンでの変更点を確認し、最後に PHP 6 に期待される機能について説明します。

1. PHP 5.0 の変更点

新しいバージョン番号として、PHP 4 と PHP 5 の間には多くの大きな違いがあります。誇大宣伝のほとんどは、ゼロから書き直される新しいオブジェクト モデルを中心に展開しています。 PHP 5 バージョンはより完成度が高く、パフォーマンスも向上しています。 PHP 4 では、オブジェクトは実際には単なる大まかなデータ型であり、値によって参照されます。 PHP 5 では、zend.ze1_compatibility_mode を設定すると、バージョン 4 のメソッドとの互換性が確保され、同時に下位互換性が可能な限り維持されます。もちろん、PHP 5 には以下のような下位互換性のない変更もいくつかあります。

· 新しい予約キーワードのほとんどはオブジェクト モデルに関連しています (Exception、final、php_user_filter、interface、implements、extends、public) 、プライベート、プロテクト、抽象、クローン、トライ、キャッチ、スロー)。 PHP 4 で保持されていた 2 つの単語 (cfunction、old_function) は存在しなくなりました。

オブジェクトにプロパティがない場合、そのオブジェクトは空ではなくなります。

・array_merge() 関数は配列のみを受け入れるようになりました。

・クラスは使用前に宣言できます(特定の状況に応じて)。

·get_class()、get_parent_class()、および get_class_methods() は、以前の結果はすべて小文字でしたが、大文字と小文字を区別した結果を返すことができるようになりました。

·strrpos() と strripos() は文字列全体を使用するようになりました。たとえば、var_dump(strrpos('ABCDEF', 'DAF')) は、PHP 4 では int(3) を返し、PHP 5 では bool(false)

を返します。 $_SERVER が存在する場合、argc と Populate が行われます。 argv - これにより、CLI バージョンが常にこのデータにアクセスできるようになります。

・無効な IP アドレスが渡された場合、ip2long() は -1 ではなく FALSE を返します。

· インクルード ファイルで定義された関数をメイン ファイルからいつでも呼び出せるようになりました。ファイルが 2 回インクルードされた場合 (関数がすでに定義されている場合)、PHP 5 は致命的なエラーも発行します。

require_once() 関数と include_once 関数は、Windows のサイズに依存しないことを考慮するようになり、関数が異なるケースのファイル名で複数回呼び出された場合でも、一度に 1 つのファイルのみを含めるようになりました。

・PHP 4 の元の警告を削除します。新しい PHP 5 では、無効な文字列オフセットが発生するとエラーがスローされます。

トークナイザー拡張機能は、アイドル状態の T_ML_COMMENT 定数を定義しなくなりました。

これらの多くの互換性のない変更は、実際には大きな変更ではないことに注意してください。元のコードを PHP 5 に移植したい場合は、スクリプトに最小限の変更を加えるだけで済みます。 PHP 5 では、多くのことを実行するためのより良い方法が提供されていますが、プログラムを実行することだけが目的であれば、それほど問題はありません。 PHP 5 のその他の変更点は次のとおりです。

· コマンド ライン CLI および CGI スクリプトにわずかな変更が加えられ、新しい CLI ステータスの重要性が効果的に高まりました。

・多数の新関数の導入。その多くは配列、文字変換、ストリーム操作の処理に使用されます。

・デフォルトでは、MySQL クライアント ライブラリは PHP 5 にバンドルされていません。代わりに、SQLite 拡張機能が含まれています。これは基本的に、セットアップと管理の必要性を排除するように設計された小型データベース エンジンです。

·MySQL 4.1 以降を最大限に活用するために、Mysqli (MySQL 拡張拡張機能) が追加されました (デフォルトでは含まれていません)。

PHP 4 から PHP 5 への変更点をより包括的に理解するには、PHP Web サイトの公式アーカイブを参照してください。

2. PHP 5.1.x の変更点

この記事が書かれた時点では、PHP 5.1.1 がリリースされたばかりでした (広く議論されている 5.1.1 の直後)。 0がリリースされました)。このリリースは、PHP メーリング リストで小さな騒動を引き起こしました。バージョン 5.1.0 では、特定の重要な変更が後続のリリース候補に急遽組み込まれました。最終リリースが大きな騒動を引き起こすまで、すべては静かに見えました。ただし、pear::date の競合を防ぐために、これらの変更は 5.1.1 で元に戻されました。

・今や、電光石火のスピードで登場した PDO は、PHP の中核の一部になりました。 PHP に関連する抽象化層の知識について詳しくは、「PHP のデータベース抽象化」または PHP Web サイトの公式アーカイブを参照してください。

PDO MySQL ドライバーは、MySQL にアクセスするための推奨される方法になりました。古い mysqli および mysql 拡張機能はデフォルトでは有効になっていません。

・PHP 5.1 では、バージョン 5.0 に比べてパフォーマンスも大幅に向上しました。

前述したように、日付/時刻のサポートはバージョン 5.1.0 で書き直され、バージョン 5.1.1 で復元されました。おそらく、すぐに変更が加えられるでしょう - 慎重に計画されたものではありますが。

・PHP 5.0からPHP 5.0.4では、抽象プライベートメソッドがサポートされています。しかし、現在ではそれらはすべて中止となっています。

・クラス定数の重複宣言が禁止になりました。次のコードは 5.1 では機能せず、E_ERROR エラーがスローされます。

class anything {
const const_name = 'value';
const const_name = 'value2';
}
?>


· 14 個の古い拡張機能が PHP コアから削除されました。これらには、ext/cpdf、ext/dbx、ext/dio、ext/fam、ext/ingres_ii、ext/ircg、ext/mcve、ext/mnogosearch、ext/oracle、ext/ovrimos、ext/pfpro、ext/w32api、 ext/yp、sapi/activescript。これらの拡張機能はすべて PECL でも利用できますが、これらの拡張機能のすべてが積極的に保守されているわけではありません。

・参考文献の管理にも変更がございます。以前は、変数を値で返す必要がある場合、参照によって変数を送信、代入、または返すことができました。これらには、定数、値としてそれ自体を返す関数、または式の結果が含まれます。以下に例を示します。

$var1 = "value";
function return_val() {
global $var_name;
return $var_name;
}
$var2 = &return_val();
?>


このコードは以前は機能していましたが (バージョン 5.0.4 まで)、バージョン 5.1 では機能しなくなりました。 E_STRICT 例外。

おそらく 5.1.x は間もなく廃止されるでしょうが、多くの貴重な改善が導入されています。おそらく PDO の導入が最も賞賛に値します。 PHP ドキュメントの変更ログの詳細については、PHP 5.1 (およびそれ以前のバージョン) の変更点の広範なリストを参照してください。

3. PHP 6.0 で行われる変更点

PHP 6.0 は非常にエキサイティングなリリースになることが期待されています。しかし、すべては二つに分かれます。しかし、私を最もイライラさせている 3 人 (register_globals、magic_quotes_gpc、safe_mode) が辞任する可能性があるようです。 1 つ目は大きなセキュリティ ホールがあり、2 つ目は大量のデータを操作するため、環境を変更するときの悪夢です。3 つ目は名前が間違っており、人々に誤った認識を与えます。安全。 Unicode の問題に関しては、やるべきことがまだたくさんあります。予想される新しい変更は次のとおりです:

·register_globals、safe_mode、およびさまざまなマジック参照オプションが削除されます。

ereg 拡張機能は削除され、XMLReader、XMLWriter、および Fileinfo 拡張機能がカーネルに追加され、デフォルトでオンになります。

私が見つけたもう 1 つのエキサイティングな新しい変更は、デフォルトではオフになっていますが、APC (代替 PHP キャッシュ) がカーネルに追加されることです。 APC は開発者に重大なパフォーマンス上の利点をもたらします。

すべての E_STRICT メッセージは E_ALL にマージされます。これは、優れたプログラミング実践に対するもう 1 つの前向きな変更です。

・ASP スタイルタグ
・新しい 64 ビット整数を導入しました。現在の整数型は保持されます。32 ビットか 64 ビットかはプラットフォームによって異なります。

・foreachはforeach($array as $k => list($a, $b))のように多次元配列と組み合わせて使用​​できます。

php.ini の新しいスイッチを使用すると、Unicode セマンティクスを無効にすることができます (デフォルトではオンになっています)。

・Unicodeの文字列操作にもさまざまな改良が加えられています。

microtime() 関数は、現在のマイクロ秒値 unix_timestamp ではなく、完全な浮動小数点数を返します。これはほとんどの人にとって有益である可能性が高くなります。

· 文字列インデックスの {} アノテーションはサポートされなくなり、[] バージョンが substr() 関数と array_slice() 関数に追加されます。古い [] は多くの人から批判されましたが、私を含むほとんどの開発者は常に [] を使用してきました。

· CGI SAPI シナリオをターゲットとする場合、FastCGI は常に有効になり、無効になりません。

・古い HTTP_*_VARS グローバル変数はサポートされなくなりました。

·var には新しいエイリアス public が付けられます。 Var は PHP4 クラスでは許可されていますが、PHP 5 では警告が発生します。 PHP 6 では、var は public の単なるエイリアスになるため、警告は表示されなくなります。

·Ze1 互換モードは削除されます - このメソッドは当初、PHP 4 の動作を保持しようとしましたが、いくつかのバグがありました。

・静的構文を使用して動的関数を呼び出すことは許可されなくなりました。

さらに、まだ決定すべき問題がたくさんあります。たとえば、名前空間の方が重要かもしれませんが、基本的にはまだ合意されていません。最近の PHP 開発者カンファレンスで PHP 6 の詳細な議論を読むことができます。 PHP 6 はまだリリースされていませんが、最終リリースまでには紆余曲折があると思います。それにもかかわらず、PHP の貢献は業界で十分に認められており、その未来は明るいです。



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

MySQLユーザーとデータベースの関係 MySQLユーザーとデータベースの関係 Apr 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

RDS MySQL Redshift Zero ETLとの統合 RDS MySQL Redshift Zero ETLとの統合 Apr 08, 2025 pm 07:06 PM

データ統合の簡素化:AmazonrdsmysqlとRedshiftのゼロETL統合効率的なデータ統合は、データ駆動型組織の中心にあります。従来のETL(抽出、変換、負荷)プロセスは、特にデータベース(AmazonrdsmysQlなど)をデータウェアハウス(Redshiftなど)と統合する場合、複雑で時間がかかります。ただし、AWSは、この状況を完全に変えたゼロETL統合ソリューションを提供し、RDSMYSQLからRedshiftへのデータ移行のための簡略化されたほぼリアルタイムソリューションを提供します。この記事では、RDSMysQl Zero ETLのRedshiftとの統合に飛び込み、それがどのように機能するか、それがデータエンジニアと開発者にもたらす利点を説明します。

MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

MySQLのユーザー名とパスワードを入力する方法 MySQLのユーザー名とパスワードを入力する方法 Apr 08, 2025 pm 07:09 PM

MySQLのユーザー名とパスワードを入力するには:1。ユーザー名とパスワードを決定します。 2。データベースに接続します。 3.ユーザー名とパスワードを使用して、クエリとコマンドを実行します。

MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です Apr 08, 2025 pm 07:12 PM

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

NAVICATでデータベースパスワードを取得できますか? NAVICATでデータベースパスワードを取得できますか? Apr 08, 2025 pm 09:51 PM

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

mysqlを表示する方法 mysqlを表示する方法 Apr 08, 2025 pm 07:21 PM

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

mysqlをコピーして貼り付ける方法 mysqlをコピーして貼り付ける方法 Apr 08, 2025 pm 07:18 PM

MySQLのコピーと貼り付けには、次の手順が含まれています。データを選択し、Ctrl C(Windows)またはCMD C(MAC)でコピーします。ターゲットの場所を右クリックして、貼り付けまたはCTRL V(Windows)またはCMD V(MAC)を使用します。コピーされたデータは、ターゲットの場所に挿入されるか、既存のデータを置き換えます(データが既にターゲットの場所に存在するかどうかに応じて)。

See all articles