PHP 5.4 正式版の重要な新機能
PHP は、Web 開発の分野において常に非常に重要で高速かつ便利な開発言語であり、大多数の開発者に好まれています。現在、PHP 5.4 の正式バージョンがリリースされており、多くの新機能が追加されており、パフォーマンスが 20% 向上し、使用するリソースが削減されていると公式は主張しています。この記事では、PHP 5.4 のいくつかの新機能について説明します。
PHP 5.4 では、まず 100 を超えるバグが修正され、メモリとパフォーマンスの最適化がより適切に行われ、register_globals、magic_quotes、safe_mode など、以前のバージョンのいくつかのメソッドが削除されました。 PHP 5.4 では、デフォルトのエンコード方式が UTF-8 に変更されたことに注意してください。これは、開発者が多言語アプリケーションを開発するのに非常に役立ちます。
Traitsの紹介
まずは、PHP 5.4で追加された新機能であるTraitsを紹介します。実際、この関数は他の言語でも見られ、その構成構造はクラスに似ているため (ただし、クラスのようにインスタンス化することはできません)、開発者はさまざまなメソッドを使用できます。クラス内でこのメソッドのセットを再利用します。 PHP は単一継承言語であるため、1 つのクラスが同時に複数のクラスを継承することはできません。このとき、特性が役に立ちます。
Traits は、実際のクラスに属さないソリューションのコレクションです。ユーザーは Trait インスタンスを作成したり、Traits 内のメソッドを直接呼び出したりすることはできません。代わりに、Trait を実際のクラスにマージして使用する必要があります。優先順位の点では、Trait メソッドは同じ名前の継承されたメソッドをオーバーライドし、現在のマージされたクラス内の同じ名前のメソッドは Trait メソッドをオーバーライドします。
以下は Traits の使用法を説明するための例です。構築している Web サイトが Facebook と Twitter の API を同時に呼び出す必要があるとします。これら 2 つの API の呼び出しプロセス中に、curl メソッドを呼び出して、API から返されるコンテンツを取得する一連の操作を実行する必要があります。これら 2 つのクラスで同じメソッドを繰り返し記述しないようにするには、次のコードに示すように、PHP 5.4 の Traits を使用して実装できます。
パブリック関数curl($url )
{
$ch =curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ ch); curl_close($ ch); return json_decode($this->curl('http://api.twitter.com/'.$url));
}
}
/**cURL ラッパー特性*/
class Facebook_API
{
use cURL; //Call Traits
public function get($url)
{
return json_decode($this->curl('http://graph.facebook.com/'.$url) );
}
}
$facebook = new Facebook_API();
echo $facebook->get('500058753')->name; となります。ユーザー名
/**Twitter API クラス*/
echo (新しい Facebook_API)->get('500058753')->name;
$foo = 'get';
echo (新しい Facebook_API)-> ;$foo('500058753')->name;
echo (new Twitter_API)->get('1/users/show.json?screen_name=rasmus')->name
上記のコードでは、最初にキーワード trait を使用して関数セットが定義されています。その名前は Curl です。このメソッドでは、URL のパラメーター値に基づいて PHP の組み込み cur が呼び出されます。 URL に対応するページ出力コンテンツを返します。そして、Twitter_APIクラスとFacebook_API
クラスでは、cURLを使用してそれぞれTraitsを呼び出し、それぞれのgetメソッドでTraitsのcurlメソッドを呼び出します。
上記のコードでは、new Facebook_API() を使用して Facebook オブジェクトのインスタンスを生成することに加えて、PHP 5.4 の新機能の使用も示していることに注意してください。つまり:
インスタンス化中にクラス メンバーにアクセスできます。つまり:
echo (新しい Facebook_API)->get('500058753')->name;
$foo = 'get';
echo (新しい Facebook_API)->$foo('500058753') -> name;
ご覧になりましたか? $foo 変数に値 get が割り当てられ、クラス内で get メソッドを呼び出そうとすると、(新しい Facebook_API)->$foo が実行されます。 ('500058753')->name ; 呼び出しを実装します。
トレイトの使用法を説明するために、別の例を見てみましょう。この例は、次のコードのように簡単です。
}
Trait Tuts
{
public function tuts()
{
return 'Tuts'
{
use Net, Tuts;
パブリック関数plus()
{
return '+'; }
}
$o = 新しい NetTuts
echo $o->net(), $o->tuts(), $o ->plus();
Echo (new NetTuts)->net(), (new NetTuts)->tuts(), (new NetTuts)->plus();
上記の結果は全てNetTutsに出力されます。また、ちなみに、PHP 5.4 のトレイトの魔法定数は __TRAIT__ です。
内蔵デバッグサーバー
これまでのPHP開発では、通常、Apache HTTP Serverと連携して開発する必要がありました。 PHP 5.4 には、開発者が複雑な構成を行わずに開発作業を完了できるよう、シンプルな Web サーバーが組み込まれています。以下では、PHP 5.4 の組み込みサーバーを使用して Windows 環境で関連作業を完了する方法を段階的に説明します。
ステップ1) まず、cドライブのルートディレクトリにディレクトリ(public_html)を作成し、そのファイル内にrouter.phpファイルを作成します。 コードは次のとおりです:
// router. php
if (preg_match( '#.php$#', $_SERVER['REQUEST_URI']))
{
require basename($_SERVER['REQUEST_URI']) // php ファイルを提供します
}
else if (strpos ($_SERVER['REQUEST_URI '], '.') !== false)
{
return false; // ファイルをそのまま提供します
}
?> 次に、 という名前の単純な PHP ファイルを作成します。次のように、index.php :
//index.php
echo 'Hello Nettuts+ Readers!';
?> 次に、php 5.4 のインストールディレクトリを開き、php.ini を見つけて次の行を追加します。 include_path:
include_path = ".;C:phpPEAR;C:public_html"
ステップ 2 組み込み Web サーバーを実行します
まずコマンドラインモードに入り、php ディレクトリに入り、次のコマンドを入力します:
php -S 0.0 .0.0:8080 -t C:public_html router.php
どのマシンでもこのサーバーにアクセスできることを指定し、ポート8080を指定し、作業監視用のルーティングファイルがルーターとphpファイルであることを指定します上記のコマンド ラインを入力して Enter キーを押すと、次のメッセージ
が表示され、組み込みサーバーが正しく起動されたことがわかります。
この時点で、ブラウザに http://localhost:8080/index.php と入力してアクセスできます。
より簡潔な配列構文
PHP 5.4 では、配列での宣言などの一部の構文サポートがより簡潔になり、
次のように宣言するための括弧の使用がサポートされます。
$fruits = array ('apples', 'oranges', 'bananas'); // 古い宣言メソッド
$fruits = ['apples', 'oranges', 'bananas'] // 新しい宣言メソッドは PHP 5.4 でサポートされます
// 新しい連想配列アクセス
$array = [
'foo' => 'bar',
'bar' => 'foo'
]; 5.4では、古い配列宣言方法もサポートされています。
関数の戻り値から配列値に直接アクセス
PHP 5.4では、関数の戻り値から配列値に直接アクセスすることがサポートされています。たとえば、次のようにします。
$tmp =explode(' ', 'Alan Mathison Turing');
echo $tmp[1]; // Mathison
この例では、PHP 5.4 より前であれば、上記の文字列の Mathison の場合、最初にexplode関数を使用して関連する値を返し、次に配列の値を取得する必要があります。 PHP 5.4 では、次のように戻り値に配列として直接アクセスできます:
echoexplode(' ', 'Alan Mathison Turing')[1]; こちらの方がずっと便利です。別の例として、上記の文字列の最後の文字列部分である Turing を追加するには、PHP 5.4 で次のようにすることができます:
echo end(explode(' ', 'Alan Mathison Turing')); 次に、次の複雑な例を示します。ポイントは以下の通りです
function foobar()
return ['foo' => ['bar' => 'Hello']]
echo foobar()['foo']['bar']; //出力 Hello
$this ポインタはクロージャで使用できます
以前の PHP バージョンでは、匿名メソッド (クロージャとも呼ばれます) で $this ポインタを使用できませんでしたが、PHP 5.4 では使用可能になりました。例は次のとおりです。
class Foo
{
function hello() {
echo 'Hello Nettuts!' }
function anonymous()
{
() {
$ this->hello(); //以前のバージョンでは不可能でした
}
}
class Bar
{
function __construct(Foo $o)
{
$x = $o->anonymous(); // 実際にFoo::hello()を呼ぶ
$x(); // 実行されるのはFoo::hello()
}
}
new Bar( new Foo); //出力 Hello Nettuts!
上記の実装方法は、PHP 5.4 では、次のように簡単に記述できます。 ; php.iniのshort_tagに関係なく、function($ that);マークの付け方 設定は、いつでもテンプレート内でこの方法の代わりに使用できます。 2 進数を識別するには「0b」接頭辞を使用します。 さて、2 進数を使用したい場合は、次のように先頭に 0b 接頭辞を追加してください。
Echo 0b11111
関数型ヒントの強化
PHP は弱いので。 PHP 5.0 以降、関数の型ヒント関数が導入されました。これは、受信関数のすべてのパラメーターが型チェックされることを意味します。たとえば、次のクラスがあります。
class bar {
}
function foo ( bar $foo) {
}
関数 foo のパラメータは、渡されるパラメータが bar クラスのインスタンスでなければならないと規定しています。そうしないと、システムが判断エラーを起こします。配列についても同様に、次のような判断もできます。
function foo(array $foo) {
}
foo(array(1, 2, 3)); // 配列が渡されるので正解です。
foo(123); // 不正解、渡されたのは配列ではありません
PHP 5.4 では、呼び出し可能な型のサポートがサポートされています。以前は、関数がパラメータとしてコールバック関数を受け入れるようにしたい場合、それが呼び出し可能な正しいコールバック関数であるかどうかを確認するために多くの追加作業を行う必要がありました。例は次のとおりです:
関数。 foo(callable $callback) {
}
ルール:
foo("false") // false は呼び出し可能な型ではないのでエラー
foo("printf") // 正しい
foo; (function(){}); //正しい
class A {
static function show() {
}
}
foo(array("A", "show")) //正しい
残念ながら、PHP 5.4では、文字、整数などの基本型の型ヒントはまだサポートされていません。
時間統計の強化
PHP 5.4 では、サービスリクエスト時間をカウントするために使用され、ミリ秒で表現される $_SERVER['REQUEST_TIME_FLOAT'] が新たに追加され、次のような開発者が非常に容易になります:
echo 'script実行時間',round(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'], 2), 's';
概要:
この記事では、PHP 5.4 のいくつかの新機能を簡単にまとめています。 PHP 5.4 の明らかな機能改善は、主にトレイトと組み込みデバッグ サーバー、UTF-8 のデフォルト サポートなどです。新機能の詳細については、PHP 5.4 のユーザー マニュアルを参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します
