検索

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 のユーザー マニュアルを参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

PHPセッションにユーザーの名前を保存する方法の例を挙げてください。PHPセッションにユーザーの名前を保存する方法の例を挙げてください。Apr 26, 2025 am 12:03 AM

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版

SublimeText3 中国語版

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール